Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Как подменить геолокацию при подключении к рабочему VPN?

Лучший ответ:
Все решается разговором и кстати если вы не поговорите и вас поймают, то разговор будет уже совсем другой. Доверие кстати штука, которую легко потерять.

Худший ответ:
Поднимайте VPN сервер на роутере в домашнем регионе, и уже роутер из региона цепляйте на домашний роутер, далее через anyconnect, можно и без "регионального" роутера, но нужно поиграться с маршрутами. Ещё проще через RDP к компьютеру в домашнем регионе, если я правильно вас понял.
Вопрос: Медиаконвертеры. Будет ли это работать?

Лучший ответ:
А почему не блок грозозащиты?

Худший ответ:
Да, конечно, все будет работать. Ограничение - 100 Мбит.
Вопрос: Почему большинство компаний требуют Linux при устройстве?

Лучший ответ:
Подавляющее большинство web-серверов в мире работают на Linux'ах. Вполне разумно ожидать от разработчика понимания окружения, в котором будут работать его программы. Так что не важно, что вы любите, важно с чем вас нанимают работать.

Худший ответ:
Скорее всего требования про которые вы говорите — это базовое обслуживание линукс инсталляции через терминал. То есть знание команд типа ps, top, cat, grep и т.д. использование консольного редактора. Этого будет достаточно. Чтобы работать с этим вам даже не нужно устанавливать весь линукс, в Windows 10 есть Linux Subsystem, которую легко и удобно устанавливать и использовать. Вот например убунту - https://www.microsoft.com/store/productId/9NBLGGH4MSV6. 
Попробуйте установить, поставить туда питон через apt-get, освоиться в консоли и т.д.
Вопрос: С первого раза не запускается ПК, в чем дело?

Лучший ответ:
обновить BIOS до последней версии

Худший ответ:
После полного выключения настройки в BIOS не слетают? Слетают = меняйте батарейку на плате
Иначе - меняйте блок питания или материнку
Вопрос: Как организовать php приложение работающее с двумя базами данных?

Лучший ответ:
1. В чём проблема? Вы разве не можете установить два соединения?
2. Можно узнать почему была выбрана именно такая схема хранения, а не в одной БД?

Худший ответ:
Но из-за некоторых ограничений (не технических), эти сервисы не могут быть расположены на одном сервере.
При таком ограничении это единственный рабочий вариант:можно сделать один запрос, получить id всех товаров, а потом делать второй запрос через where in, но это тяжелый запрос будет. 
Т.е. либо снимайте ограничение, либо миритесь с более сложными (и долгими) запросами к двум серверам.
Вопрос: Возможно ли использование win server как клиентскую ОС?

Лучший ответ:
Советую почитать как лицензируется win server. Не всё так радужно и лицензии на 2 ядра не хватит. Но win10 тоже есть для учебных заведений...

Худший ответ:
Персонально использую Win server 2019 на 1 пк и 1 ноутбуке в качестве клиентской ОС. Уже больше года. Делал это ради эксперимента, принципиально. Эксперимент удался: абсолютно никаких проблем, кроме того, что пришлось вручную поставить некоторые службы вроде BitLocker, резервного копирования, Windows audio, ни разу не было. Более того, на серверной версии даже игры чуть шустрее идут - гораздо меньше статторов, в сравнении с прошкой. Скорее всего из-за отсутствия кучи ПО в фоне.
Вопрос: Что нужно знать перед изучением Java?

Лучший ответ:
Можно с неё и начать.

Худший ответ:
... если ничего кроме языков разметки не знаешь
Пожалуй, в твоем случае было бы лучше сначала изучить алгоритмику, а потом уже начать кодить на самой Джаве.
Чтобы все предельно понятно было, как вообще работает программа, я бы советовал познакомиться с С/C++, ибо первая программа на Джаве уже "включает в себя" ООП.
Вопрос: Как сделать ос где только браузер и одна вкладка, которая загружается сама?

Лучший ответ:
Настроить автоматический вход в систему и запуск браузера в kiosk mode. Например
firefox --kiosk https://ваш.сайт

Худший ответ:
Ищи про автозапуск браузера в режиме kiosk, так умеет хром точно, есть https://porteus-kiosk.org/, который чисто под это вроде как заточен, но это можно сделать с любым дистром по идее.
Вопрос: Как правильно преобразовать массив в нужный вид?

Лучший ответ:
$newArray = [];
$array = ['Строка 1', 'Строка 2', 'Строка 3'];
 
foreach ($array as $arr) {
	$newArray[] = ['url' => $arr];
}
 
var_dump($newArray);

Худший ответ:
Еще 1 возможный вариант реализации:
$newArray = [];
$array = ['Строка 1', 'Строка 2', 'Строка 3'];
 
foreach ($array as $arr) {
  $arr1 = array ('url' => $arr);
  array_push($newArray,  $arr1);
}
print_r($newArray);
Вопрос: Почему заканчивается место на виртуалке Ubuntu?

Лучший ответ:
Начните с исследования занимаемого места, по файлам, утилит тьма - консольный ncdu (ищите в пакадж менеджере Ncurses Disk Usage) например, графический тот же baobab (disk usage analyser) или QDirStat

Если у вас много примонтированных разделов (например с циклами с помощью bind или сетевые) можно в настройках ограничить анализ одним диском (ncdu -x / например)

Худший ответ:
Установить ncdu: sudo apt install ncdu (ncdu утилита показывающая чем занято дисковое пространство)

Запустить sudo ncdu /

Дальше действовать по ситуации...
Вопрос: Как реализовать автоподгрузку полей из mysql?

Лучший ответ:
Проще всего сразу выбирать и ФИО и почту, без всяких подгрузок
Добавлю, что если и делать подгрузку, то тогда живой поиск по фамилии, и не загружать заранее вообще ничего.

Худший ответ:
сделайте с помощью аякса. 
Что вам нужно:
1. привязаться к событию onchange на контроле фамилии
2. создать страницу на php которая возвращает email /getemailbyid.php?id=42
3. после получения результата заполнить на клиенте поле электронной почты
4. Можно и другие поля в карточке человека, просто добавьте в ответ файла структуру json
Вопрос: Как сделать регистрацию на сайте сразу на 2-х ресурсах одновременно через один?

Лучший ответ:
Нужно регистрироваться вместо самого пользователя - как именно это сделать, нужно смотреть в конкретном случае.

Но это почти всегда нелегально, тк пользователь должен принять пользовательское соглашение и политику по работе с ПД на втором сайте, что не выйдет, если регистрируется он не сам.
В теории, можно включить в своё пользовательское соглашение, что вы зарегистриуетесь на другом сайте за него и передадите ему ПД ради этого.

Лично мне эта идея кажется какой-то мутной. Если бы я подобное увидел, то держался бы от такого сайта подальше.

Худший ответ:
Сделать то не сложно основная проблема лицензионные ограничения, да и опаска пользователей . Да и смотрите я зарегистрировался где то и вот мне приходит на номер какое то левое смс да ещё с припиской никому не говорите. Что я сделаю?
Вопрос: Как исправить само-очистку файла wp-load.php?

Лучший ответ:
Неизвестный мне вирус который очищает wp-load.php оказался не так страшен, но натворил много бед, а именно все сайты на сервере были заражены.
Удалено модератором. 
Запрещено распространять вирусы. 

Основные признаки вируса:
Пустой файл wp-load.php

wp-admin/css/css.php - если увидели, значит вирус уже интегрирован полностью и вот вот начнется само очистка.

В папке wp-content а так же в подпапках (всех) - найдете файлы
function-class.php
.class-wp-cache.php
некоторые файлы index.php (там где им не место быть, особенно в папках uploads)
В них будет содержаться код который по ссылке.
Простое удаление этих файлов не поможет, так как они создаются заново, надо зайти в wp-load и удалить все что связано с 'WPTemplateOptions' а так же ищите это словосочетание в папке с темой, обычно в файле function нет вирусного кода, там указан лишь путь, поэтому вам необходимо сверить с оригиналом, в моем случает в файл function в конце был добавлен просто путь к файлу с вирусом, назывался он class.php , обнаружил я его при сверке.

И так что необходимо сделать, удалить папки wo-admin, wp-include именно удалить, так как в подпапках лежит вирус и называется он обычно как название папки в котором лежит, поэтому самое быстрое это удалить, перезапись не поможет. И залить по новой с оригинального архива.
Так же желательно заменить файлы WP в корневой папке.

Далее ищем в папке wp-content эти два файла: function-class.php | .class-wp-cache.php и папке с плагинами и uploads дополнительно файл index.php. Удаляем, я удалял с помощью Filezila потому что хостер с убогим файловым менеджером без поиска.

И на последок ищем в этой же папке файлы которые начинаются на .(название папки), то-есть вирус создает файл который имеет название папки но только с . в начале, например theme/astra/.astrap.php 

Это единственный способ избавиться от него, проверяйте все сайты которые лежат на хостинге, так как вирус распространяется по всему серваку, и не выявляется себя примерно неделю. 

Важно что никакие плагины не выявляют этот вирус, ни даже virusdie через ftp и прочее, встроенные от хоста так же не выявляют.

Важно помнить, если у вас полетела wp-load.php и накрылся сайт значит сервак полностью заражен и дальше будет накрываться другие.

Худший ответ:
Плагин Wordfence хорошо справляется с этим вирусом - отыскал все 540 созданных и модифицированных им файлов, а также помог удалить эти левые файлы и восстановил модифицированные!
Вопрос: Конкурс на дизайн со вступительным взносом — стоит участвовать?

Лучший ответ:
заплати вступительный взнос 150 руб. чтобы принять участие в конкурсе по дизайну логотипа для фирмы

Худший ответ:
- Расскажите секрет, как бесплатно получить логотип?
- Все очень просто, берете дизайнера, просите его внести взнос и платите ему в конце, его же деньгами!
Если серьезно, то вот, без регистрации и смс: dizkon.ru
Вопрос: Как разобрать код (underscore.js)?

Лучший ответ:
a = x && '1' || '2'
соответствует a = x ? '1' : '2'
Разложите, начиная с конца.
Или вот вам аналогconst root = (() => {
  if (typeof self == 'object' && self.self === self) {
    return self
  } 
  if (typeof global == 'object' && global.global === global ) {
    return global
  } 
   return this;
 }
})();
короче, не надо так писать в проде :)

Худший ответ:
См. таблицу Приоритета операторов JS. От более высокого к менее: == и === (одинаково)&&||расставить скобкиvar root = 
  ( typeof self == 'object' && self.self === self && self )  ||
  ( typeof global == 'object' && global.global === global && global )  ||
  ( this );
и ещё больше скобокvar root = 
  ( (typeof self == 'object') && (self.self === self) && (self) )  ||
  ( (typeof global == 'object') && (global.global === global) && (global) )  ||
  ( this );
Пытаются понять контекст выполнения. self в Worker'ах; global определена в nodejs;this в прочих.
Вопрос: В чем преимущества использование React в Laravel?

Лучший ответ:
Но это также есть и в PHP фреймворках описанных выше.Есть, но это работает на сервере, а Реакт на клиенте. Это принципиально разные сценарии использования сайта.

На вопрос "зачем нужен react" вы найдёте огромное количество ответов в поисковике.

Худший ответ:
Чтобы делать меньше серверных вызовов при работе пользователя. Банальная отметка чекбоксами в дереве (при клике на родителя устанавливается/снимается галочка у всех подчиненных + обновляется "три состояния флажка" у родителей) без vue, на чистом js, делается сложно. Всякое пересчитывание сумм при изменении количества и всё такое.
Вопрос: Как доставать id чата из id беседы с помощью регулярки?

Лучший ответ:
Жесть.
int('2000000179'[1:])
int('2000000003') - 2000000000
Решил вырезать другу аппендицит. Слышал, что он растёт внизу живота. Скажите, его можно достать через задницу, если нет, то куда тыкать ножиком?

Худший ответ:
Даже не знаю зачем я решил здесь использовать регулярку, просто у меня беда с логикой, проще говоря вот самое простое решение:
chat_id = int(event.object.peer_id) - 2000000000
Вопрос: Как вернуть Windows до заводских настройках?

Лучший ответ:
если не вин10 (см ответ Nikolay Petyukh) тогда перед установкой выполнить полное форматирование любым удобным способомдоступно при загрузке с установочного диска
(в 10 тоже работает)
важное условие - выполнить надо полное форматирование. не "быстрое"
в общем случае какие то сторонние средства не нужны. хотя можете гуглить от слова wipe disk и подобноеps для ssd 100% гарантии уничтожения данных нет ни при каком способе зачистки (но нет и гарантии восстановления даже экспертами) - https://habr.com/ru/post/115349/

Худший ответ:
Отформатировать жесткий диск прогой с загрузочной флешки.
Еще можно попробовать самоубийственное форматирование какой-нибудь прогой в работающей винде типа minitool partition wizard.
Вопрос: Как сделать верстку по макету?

Лучший ответ:
откройте в любом графическом редакторе (photoshop). 
шрифты «на глаз», цвета пипеткой, размеры линейкой.

Худший ответ:
Есть очень удобный инструмент, Avocode, вполне заменяет фотошоп для работы с макетом. Все шрифты, цвета, отступы можно получить из него. Первые 30 дней бесплатно, дальше, вроде 6$.
Вопрос: Что означает «?v=1» при подключении .css?

Лучший ответ:
Означает, что какая бы ни была кеширующая система на сервере и на клиенте, добавление такой фигни форсирует кеш (почти) без вариантов, потому что это как бы другой файл. То есть если что-то изменили в css, можно это добавить, и в новой страничке загрузится новая версия css, а не из кеша.

Худший ответ:
Пример - написали для сайта стили, всё работает, всё ок. 
Потом потребовалось внести изменения, добавить больше стилей, и чтобы у пользователей, которые на сайт заходили, применялся новый файл, а не кэшированный, поставили такое дополнение в виде get-запроса. Поскольку стили отдаются непосредственно файлом css, который не может в get-запросы, он же и открывается, но для браузера это уже другой файл. И стили грузятся новые.
Вот как-то так.
Вопрос: Как удалить клавиатуру в Telegram?

Лучший ответ:
Имеет по умолчанию клавиатуру это как? Библиотека дописывает рандомные кнопки к сообщениям что ли

reply_markup=types.ReplyKeyboardRemove()

Худший ответ:
просто отправь пустой reply_markup:
@dp.message_handler()
async def all_msg_handler(message: types.Message):
    await ms.reply('прячем клавиатуру', reply_markup='')
Вопрос: Как исправить эти ошибки не понятно?

Лучший ответ:
элементарно – осилить https://www.php.net/manual/ru/function.isset.php

Худший ответ:
вы не передаете в скрипт $_GET['force_mobile'] и $_GET['lauid'] хотя в скрипте производите над ними операции, вот и ошибки.
И как ни странно есть 2 варианта, чтобы избавится от этих ошибок:
1) Передать в скрипт эти переменные.
2) Либо удалить из скрипта операции над ними.
Вопрос: Почему в php функция не имеет доступ ко внешним переменным?

Лучший ответ:
Согласно пророчеству.
Если хотите, чтобы функция php видела внешнюю переменную, то её надо импортировать в функцию с помощью
global $a;

Худший ответ:
Область видимости переменной для полного погружения
https://www.php.net/manual/ru/language.variables.s...

$a = 5;
function inc() {
  return $GLOBALS["a"];
}

var_dump($a); //int(5)

var_dump(inc()); //int(5)
Вопрос: Как офлайн хранить данные из БД в приложении Win Forms?

Лучший ответ:
в exe ни как. если только сохранять в отдельный файл - json, csv, xml.. на самом деле много вариантов, хоть свой формат запилить 
или в легковесную встраиваемую БД

ps популярные варианты - SQLite, MS SQLCE, LiteDB.. на самом деле много вариантов
pps даже Access - прикол в том что первичен уже давно не сам Access, а движок. он встроен в любую винду по дефолту. очень много поколений
ppps а как "скопировать" эти самые "куски" из общей базы архива - я не знаю.  таки смотрите сюда (если конечно у вас MS SQL, о чем можно предположить по разнообразным отрывкам)
https://docs.microsoft.com/en-us/sql/integration-s...
https://docs.microsoft.com/ru-ru/sql/integration-s...
а еще оч даже на ура можно использовать LINQpad для этих же целей

Худший ответ:
Я вам предлагаю (настойчиво) не заниматься строительством лисапедов. Такие программы известны в отрасли уже давно. 

Работают они так - программа ставит вместе с собой нужный сервер SQL, потом заливает в него нужную базу - и бегом.

Писать отдельный код, который будет, по сути, кривой, плохо оттестированной и отлаженной реализацией SQLite - это самое плохое решение.
Вопрос: Где и как найти работу в 16 лет (есть опыт)?

Лучший ответ:
Там же, где и в 20. По КЗоТу вы можете работать. Практический полный день.

Худший ответ:
Практически на любом ресурсе предоставляющем вакансии/разовые проекты. Очевидный пример:
https://career.habr.com/

Англоязычный пример (уже и с вакансиями, и с разовыми проектами)
https://www.upwork.com/

Есть еще headhunter, fl.ru. Все зависит от ваших намерений.
Вопрос: Какая разница между объектами (или набором обьектов) и ассоциативным массивом?

Лучший ответ:
Не совсем понятно что Вы имеете ввиду. В js нету ассоциативных массивов как раз их место занимают объекты.

Худший ответ:
Объект это и есть ассоциативный массив, читайте это Учебник
Вопрос: Какое направление выбрать после университета?

Лучший ответ:
1) А какого х**, получив бакалавриат IT вуза в Москве, у тебя "никаких относительно сложных проектов в разработке не было". Толковые ребята во время учебы ходят на различные стажировки в крупные айти-компании, набивают руку на боевых проектах и прочее. Как итог, по выпуску из универа получают оффер на руки (а то и несколько). 

А у тебя ситуация уровня какого-то вайтишника, который вчера таксовах, а сегодня рассуждает php или python ибо начинался маркетингового булшита в нете.

2) Твои страдания выбора закончатся очень быстро, когда тебя пошлют на паре первых собеседований, и дадут выбор: "Работа в технической поддержке у какого-нибудь Ростелекому или закрой дверь с другой стороны".

p.s. такой вопрос можно ожидать увидеть от школьника или какого-то непрофильного чувака, но явно не выпускника айти-вуза. Уровень обучения и личная мотивация у кандидата просто днище.

Худший ответ:
Я дома учился пару лет котлеты жарить, вот таким же вопросом задался:
Парни, а в мак возьмут хотя бы на кассира? Или все-таки пойти на повара? нужен ваш совет.
Что сейчас приоритетнее? Где больше денег платят? Я ведь 3 года котлеты жарил :c
Вопрос: Возможно ли закешировать около 1 гб в браузере?

Лучший ответ:
Возможно конечно. Для хранения больших объемов данных в браузерах существует встроенная БД IndexedDB.

Для работы с ней сначала подключаем специальную библиотеку, которая упрощает ввод и вывод:
<script src="https://cdnjs.cloudflare.com/ajax/libs/localforage/1.9.0/localforage.js"></script>
Далее, чтобы сохранить какие-то данные выполняем в консоли браузера:
result = await localforage.setItem('key', save_data);
console.log('Данные успешно сохранены:');
console.dir(result);
Где в save_data лежат сохраняемые данные, а key это ключ по которому можно было бы получить к ним доступ.

Из особенностей, в save_data мы можем положить любой тип данных - хоть строку, хоть массив, хоть объект. Да даже файл при желании можно сохранить! При этом нет ограничений по объему хранимых данных, можете хоть сто мегабайт, хоть триста запихнуть - встроенное хранилище все сожрет.

Чтобы потом извлечь сохраненные данные достаточно выполнить:
result = await localforage.getItem('key');
console.log('Данные успешно извлечены:');
console.dir(result);
Срок хранения данных - неограниченно. Или пока пользователь вручную не обнулит кеш браузера.

P. S. Обратите внимание, что если вы где-то в своем коде внутри функции используете слово await, то такая функция обязательно должна иметь приставку async! Иначе получите ошибку. В консоли можно использовать await в лоб, но для использования await в коде нужно, чтобы функция внутри которой она вызывается была асинхронной!!!

Худший ответ:
Нет (5-10 Мб максимум), да и глупо звучит. Что будут делать пользователи с ограниченными ресурсами?
Вопрос: Является ли ошибки валидации CSS критичным для SEO?

Лучший ответ:
Если в браузерах отображается правильно, то не влияет. Проводил эксперимент - исправлял подобные ошибки на 10 сайтах, эффекта не было.

Худший ответ:
Конечно! Судя по тому что пишут в ошибке, в половине браузеров ваша верстка вообще работать не будет. Там часть функций, которые только в черновиках. Влияет на продвижение и очень серьезно!
Вопрос: Как работать с сессиями Laravel?

Лучший ответ:
В API не может быть сессий. Надо перестать изобретать велосипед и взять, например, Passport.
Если Passport использовать возможности нет, то надо перестать париться из-за запросов в базу.
Если очень хочется нарушить все общепринятые соглашения и использовать сессии, то надо пойти и почитать про них в документации.

Худший ответ:
Для авторизации по API давно придумали JWT (Json Web Token).  JWT это закодированный в base-64 json объект, состоящий из заголовков, пейлоада и хеша подписи. В пейлоад вы можете засунуть всю инфу, за которой не хотите бегать в базу, имя юзера, роль и т.д. Подлинность токена гарантируется подписью. Подписывается токен на бекенде, при создании, вашей секретной строкой. Для Laravel есть пакет . 
Сайт JWT  - https://jwt.io
Вопрос: Как отследить, спарсить, визуально мониторить подключившихся пользователей по OpenVPN?

Лучший ответ:
В конфиге openvpn есть директива status - в ней можно задать путь к файлу куда openvpn будет складывать текущую информацию по подключенным соединениям. Чем парсить - фиг знает, разбирайте его сами, лог простой.

В директивах log или log-append - указываете общий файл лога, туда льется вся остальная инфа от openvpn. 
Уровень логирования задается с помощью verb.

Худший ответ:
Привет хабровчане.
Использую у себя такой скрипт на проде:
#!/bin/sh

export INDEXTXT=/etc/openvpn/easyrsa3/easyrsa3/pki/index.txt
export LOGFILE=/var/log/openvpn.log
echo -e "\nOpenVPN users last connection mac/ip list tool\n"
validusers=$(grep -E "V{символ табуляции}" $INDEXTXT|cut -d'=' -f2)
#echo Users last mac/ip addresses:
echo LastLogin Timestamp        /       User    /       mac     /       ip
for usr in ${validusers}
    do
    if [ $(grep -E "MULTI: Learn:" $LOGFILE|grep "$usr"|tail -1|wc -l) -gt 0 ]
        then
        echo $(grep -E "MULTI: Learn:" $LOGFILE|grep "$usr"|tail -1|cut -c 1-24)    /       $usr    /       $(grep -E "MULTI: Learn:" $LOGFILE|grep "$usr"|tail -1|cut -d':' -f6-11|cut -c 2-18)    /       $(grep -E "MULTI: Learn:" $LOGFILE|grep "$usr"|tail -1|cut -d'/' -f3|cut -d':' -f1)
    fi
done
Стоит обратить внимание на символ табуляции в команде выборки валидных пользователей.

Принцип работы:
Парсинг файла БД сертификатов openssl - index.txt, выборка валидных пользователей.
Цикл с проходом по списку валидных пользователей, и парсинга лог-файла openvpn.log
Выхлоп скрипта примерно следующий:
Вопрос: Чем отличается react от vue, основное отличие?

Лучший ответ:
у одного пять букв в названии, у другого три
освойте js, и подобные вопросы перестанут вас волновать

Худший ответ:
Основное? Одно? 
JSX
Вопрос: Не подключается к инету?

Лучший ответ:
О-о-о-о! Я кажется понял что хотел сказать автор!
По ходу у него стоит менеджер паролей, в который был вбит пароль от интернетов, а мастер-пароль от менеджера автоматом подставлялся в поле для ввода при открытии менеджера. А сей молодой пытливый ум перезаписал пароль от интернетов паролем от менеджера, а потом попытками открыть менеджер паролями от интернета перезаписал и автозамену. То есть поменял их местами и страдает.
Других вариантов исходя из этого потока подсознания я вычленить не могу...

Худший ответ:
Есть интернет который сделал не я. Сделал отец. Он мучился и все же сделал интернет.
Ну вот. Теперь сижу и думаю, есть ли такое отчество - Тимович.
Вопрос: Литература по NodeJS?

Лучший ответ:
служу в армии
Какую литературу посоветуете?
Устав гарнизонной и караульной службы.

Без практики в чтении книжек смысла нет. Как вы собираетесь практиковаться в армии - представить затрудняюсь.

Худший ответ:
первая ссылка из гугла
Вопрос: Как получить сообщения за последние несколько часов?

Лучший ответ:
async for ... in history(...): https://discordpy.readthedocs.io/en/stable/api.htm...

counter = 0
async for message in channel.history(limit=200):
    if message.author == client.user:
        counter += 1

messages = await channel.history(limit=123).flatten()
# messages is now a list of Message...

Для получения сообщений за последние 2 часа:
from datetime import datetime, timedelta
# ...
async for message in channel.history(
    limit=None,  # If None, retrieves every message in the channel. Note, however, that this would make it a slow operation.
    after=datetime.utcnow()-timedelta(hours=2) # If a date is provided it must be a timezone-naive datetime representing UTC time. (https://docs.python.org/3/library/datetime.html#datetime.datetime.utcnow)
):

Худший ответ:
могу предположить, что здесь есть решение.