Этот скрипт предназначен для суммирования донатов от пользователей, подсчёта общей суммы донатов, вывода полной информации о донатах. Подробнее ниже.
Скрипт выполняет 2 функции:
- Читает файл
donations.txt. - Подсчитывает все донаты от одних и тех же пользователей и суммирует их
- Сортирует донаты по пяти разным категориям.
- Выводит все или установленное вами кол-во строк с донатами (по желанию).
- Выводит донаты выше установленной вами минимальной суммы (по желанию).
- Подсчитывает сумму всех донатов в отдельной строке.
- Добавляет (по желанию) ключевое слово после суммы донатов (например - валюту)
Есть нюанс: Скрипт чувствителен к регистру в никнеймах, так что для него span4ev, Span4ev, spaN4ev - разные люди. Например в случае со Span4ev и span4ev - донаты не будут просуммированы. Это обусловлено тем, что нельзя предугадать какой из ников будет истинно верным (оригинальным). К тому же не исключено, что span4ev и Span4ev (как пример) - действительно разные люди, т.к. указанный никнейм при отправке доната не является уникальным (как ник на твиче) и можно указать абсолютно любое имя, даже чужой никнейм.
Читает HTML файл со всеми донатами (то же, что и окно в OBS со всеми донатами с DA) и сохраняет в файл всю имеющуюся информацию:
- Имя отправителя
- Сумма доната
- Покрытие комиссии (символ ♥)
- Сообщение с донатом (если есть)
- Названия видео (если есть), если включена опция "прикрепить видеоролик к сообщению"
- Ссылка на видео (если есть), если включена опция "прикрепить видеоролик к сообщению"
- Прошедшее время с отправки доната (по желанию)
Учтите, что скрипт находится в стадии тестирования. Из-за отсутствия получения опыта всех возможных донатов, стикеров к сообщению и прочего возможного - скрипт не умеет с этим работать и могут возникнуть непредвиденные результаты или конечный файл не будет создан. Чтобы обрабатывать такие обстоятельства я должен с ними столкнуться или получить чужой файл с донатами, в котором есть новые условия, которые нужно обрабатывать. На всякий случай сообщаю, что скрипт не собирает никаких данных, так что если у вас возникли ошибки или образовалась какая-то нестандартная ситуация, вы можете со мной связаться и объяснить что пошло не так.
Для этой опции вам понадобится файл с вашими донатами с сайта Donation Alerts.
Для того чтобы получить этот файл, перейдите на эту страницу Donation Alerts или выберите в боковом меню пункт Последние сообщения.
Далее - Экспорт.
При экспорте выберите формат .txt HTML список.
Поместите скачанный файл donations.txt в папку проекта и запустите исполняемый файл DonationAlerts_helper.exe.
При выборе этой опции в папке проекта будет создан файл _DONATION_SUMMATION_RESULT_.txt
Пример результата:
НеПалатка - 20 ₽
Это я - 100 ₽
Rosie from America - 60 ₽
Аноним - 40 ₽
Общая сумма - 220 ₽Для этой опции вам понадобится HTML файл с вашими донатами. Как правило, файл называется Last alerts - DonationAlerts.html. Если название или расширение будет отличаться - вы скачали не тот файл или не тем образом и скрипт не выполнит свою работу.
Получить этот файл очень просто и пусть вас не смущает перечень действий:
- Откройте
OBS. - Включите отображение окна с донатами, если оно не включено. Отобразить окно можно через Док-панели.
- Нажмите ПКМ по окну с донатами и выберите
Копировать текущий адрес. Адрес будет выглядеть примерно так:https://www.donationalerts.com/widget/lastdonations?alert_type=1,4,13,15,11,16,14,2,3,5,12&limit=50&token=ВАШ_ТОКЕН - Вставьте скопированную в буфер обмена ссылку в любой браузер и перейдите по ней. Во вкладке браузера откроется такое же окно с донатами, как в
OBS. - Нажмите ПКМ в любом месте страницы (или
CTRL+S) и обязательно сохранитеHTMLв том виде, который предлагает браузер по умолчанию, то естьВеб-страница полностью (*.htm;*.html). Другие варианты работать не будут из-за специфики разметки. Вместе сHTMLфайлом скачается папка, её можно сразу же удалять. - Поместите скачанный
HTMLфайл в папку проекта. Если вы перенеслив папку проектаHTMLфайл вместе с одноимённой папкой, скрипт сам её удалит.
Обратите внимание, что сохранять файл нужно именно как Веб-страница полностью (*.htm;*.html) - то есть вариант по умолчанию, а не Веб-страница, только HTML (*.html;*.htm) или Веб-страница, один файл (*.mhtml)
(Необходимо подключение к интернету, т.к. информация о донатах подгружается с сайта DA динамически)
При выборе этой опции, в папке проекта будет создан файл _FULL_DOTATIONS_INFO_.txt
Пример результата:
(19 минут назад)
Mike : 50 RUB
«Miyagi & Andy Panda - Там Ревели Горы (Mood Video)»
https://www.youtube.com/watch?v=MzI_CIYSsfQ(10 дней назад)
Rosie from America : 150 RUB ♥
— Не дал, но мог дать. Как не хэдшот?!
«Rag'n'Bone Man - Human (Official Video)»
https://www.youtube.com/watch?v=L3wKzyIN1yk__main__.py- Скрипт для запускаclass.ui- ФайлPyQt5 Designerconfig.txt- Файл конфигурации, в который скрипт записывает текущие настройкиda.py- Основной скриптDonationAlerts_helper.exe- Исполняемый файл скриптаREADME.md- Ридми файлwidget.py- ВиджетPyQt5generate_test_donates.py- файл для генерации тестового файла с донатами типаdonations.txt. Нужен исключительно для тестов. Через графический интерфейс не запускается, только как скрипт Python, через IDE или CMD. Если вам это не нужно, можете удалить этот файл.
После того как вы поместили в папку проекта скачанные файлы, запустите исполняемый файл DonationAlerts_helper.exe. Откроется окно с графическим интерфейсом, в котором вы можете выбрать действия скрипта и различные настройки. После нажатия кнопки OK скрипт запустится, выполнит выбранную вами функцию, создаст текстовый файл (в зависимости от выбранной опции) и окно автоматически закроется. Скрипт может выполнять только 1 функцию за раз: либо подсчёт донатов, либо вывод полной информации. Если вам нужно создать файл с суммированными донатами и файл с информацией о донатах, запустите скрипт дважды.
Вы можете запускать DonationAlerts_helper.exe любое кол-во раз. При каждом запуске создаваемые скриптом файлы и файл config.txt будут перезаписываться.
Теперь вы можете открыть файл _DONATION_SUMMATION_RESULT_.txt или _FULL_DOTATIONS_INFO_.txt и скопировать оттуда данные.
В папке присутствуют все скрипты, на основе которых был скомпилирован
.exeфайл - если вы хотите изучить скрипты или скомпилировать собственный экзешник. Функционал экзешника иPythonскриптов - индетичен. Исполняемый файл нужен для людей, у которых не установленPython.
В этот файл сохраняются текущие выбранные настройки и используются для установления значений при открытии виджета.
При желании, вы можете менять настройки напрямую в этом файле.
При выборе нестандартных значений в файле config.txt после знака равно, будут использованы значения по умолчанию из атрибута default_settings класса App в файле widget.py.
- Включена опция "Подсчёт общей суммы всех донатов"
- Все донаты от каждого донатера суммируются - это неизменно.
- Донаты сортируются по большей сумме.
- После суммы указан символ рубля
- Выводятся все строки с донатами
- Включена генерация строки с общей суммой всех донатов
- Отключена информации о времени доната
- Подсчёт общей суммы всех донатов
- Вывод полной информации о донатах
Информация об этом указана выше.
Варианты на выбор:
0 - Сортировка по умолчанию
1 - Сортировка по умолчанию (инвертированная)
2 - Сортировка по большей сумме
3 - Сортировка по меньшей сумме
4 - Сортировка по алфавитуЕсли у вас есть предложения о том, какие можно добавить методы сортировки, дайте мне знать.
Для примера возьмём вот такой список донатов, указанных в порядке поступления:
Аноним - 10
Аноним - 10
Это я - 100
Rosie from America - 15
Rosie from America - 15
НеПалатка - 20
Rosie from America - 15
Аноним - 10
Rosie from America - 15
Аноним - 10Результат:
Аноним - 40
Rosie from America - 60
Это я - 100
НеПалатка - 20Результат:
НеПалатка - 20
Это я - 100
Rosie from America - 60
Аноним - 40 Результат:
Это я - 100
Rosie from America - 60
Аноним - 40
НеПалатка - 20 Результат:
НеПалатка - 20
Аноним - 40
Rosie from America - 60
Это я - 100 Результат:
Rosie from America - 60
Аноним - 40
НеПалатка - 20
Это я - 100 В последней строке будет указана общая сумма всех имеющихся в файле donations.txt донатов.
Доступны два варианта: Вкл и Выкл.
Результат:
НеПалатка - 20 ₽
Это я - 100 ₽
Rosie from America - 60 ₽
Аноним - 40 ₽
Общая сумма - 220 ₽(Опция только для вывода полной информации о донатах с помощью опции №2)
В верхней строке будет указано, когда пришёл донат. Пример:
(19 минут назад)
Mike : 50 RUB
«Miyagi & Andy Panda - Там Ревели Горы (Mood Video)»
https://www.youtube.com/watch?v=MzI_CIYSsfQ(10 дней назад)
Rosie from America : 150 RUB ♥
— Не дал, но мог дать. Как не хэдшот?!
«Rag'n'Bone Man - Human (Official Video)»
https://www.youtube.com/watch?v=L3wKzyIN1ykУкажите минимальную сумму, от которой нужно выводить донаты либо в поле для ввода текста, либо с помощью ползунка.
Укажите 0 в поле для ввода, чтобы не указывать ограничение по минимальной сумме
Укажите кол-во строк с донатами, которые нужно выводить либо в поле для ввода текста, либо с помощью ползунка.
Укажите 0 в поле для ввода, чтобы выводить все строки
(по умолчанию указан символ рубля - "₽")
Для того чтобы указать любое другое слово/символ, укажите его в соответствующем поле без кавычек. Или оставьте поле пустым, чтобы ничего не указывать после суммы доната.
ОК- применяет текущие настройки? запускает скрипт и закрывает окно интерфейса. Так же записывает выбранные настройки в файлconfig.txtCancel- закрывает окно без применения изменений.RESET- сбрасывает все настройки на установленные по умолчанию и записывает их в файлconfig.txt
Есть одна функция о которой следует упомянуть на случай, чтобы никого не смутило поведение скрипта.
Если у вас есть несколько файлов donations.txt или Last alerts - DonationAlerts.html в папке проекта - скрипт будет использовать файл с последней датой создания, остальные удалять.
Представим, что вы хотите использовать свежий файл donations.txt или Last alerts - DonationAlerts.html, но в папке сохранения у вас уже есть файл с таким именем.
В таком случае новому файлу будет присвоено имя, например - donations (1).txt.
Чтобы вам не пришлось каждый раз переименовывать такие файлы в donations.txt или Last alerts - DonationAlerts.html, скрипт сделает это автоматически.
Как это происходит:
- скрипт ищет в папке проекта все файлы с упоминанием нужных имён файлов в названии и с нужным расширением.
- Далее среди всех таких файлов находит файл с последней датой создания.
- Затем удаляет все остальные файлы (более старые).
- Переименовывает самый свежий файл в
donations.txtили вLast alerts - DonationAlerts.html. - В случае с
Last alerts - DonationAlerts.htmlскрипт так же удаляет папкуLast alerts - DonationAlerts.
Таким образом, не важно сколько у вас будет файлов с упоминанием (для примера) donations в названии: donations (1).txt, donations (2).txt, donations - (копия).txt, donations_1.txtи т.п., в папке проекта на момент запуска скрипта - он всё равно будет использовать самый свежий, а остальные удалит.
Удаление происходит для того, чтобы не захламлять папку проекта старыми копиями файлов с неактуальной информацией.
Функция сделана исключительно для удобства и вам не обязательно вникать в то, как это работает. Просто учтите, что старые файлы с донатами будут удалены. Если они по какой-то причине вам необходимы, их следует сохранять вне папки проекта.
Генерирует файл _random_donates_example_.txt такого же типа, как и файл donations.txt для теста.
Для использования сгенерированного файла для подсчёта суммы донатов, переименуйте файл _random_donates_example_.txt в donations.txt. Автоматического переименования не происходит, чтобы не перезаписывать ваш файл с донатами.