Help - Search - Members - Calendar
Full Version: RSS-фильтр, чтобы не пропустить новый альбом любимой группы
Metal Area - Extreme Music Portal > Offtopic Area / Кроме тяжёлой музыки > Smoking room
fabeldyr
я думаю, что я не один такой на портале, у кого список групп в плейлисте перевалил за несколько сотен, а соответственно и новые релизы, обязательные к прослушиванию, стали появляться гораздо чаще и уследить за их выходом всё сложнее и сложнее.
я долго думал - как решить эту проблему, ближайшим решением был last.fm, который сообщал о выходе новых релизов групп из библиотеки, но там всё очень плохо в этом плане с не очень популярными группами, так что не подходит.
вторым решением было установить себе читалку RSS и смотреть в неё, но смотреть в неё постоянно неудобно, да и порой некогда, а вот читалки с фильтрами я не нашёл и, пособиравшись долгое время, наконец наткнулся на пример кода RSS-читалки, допилил к ней фильтрацию и поиск исполнителей, чтобы не вбивать их вручную и вот сам пользуюсь, потихоньку доделывая разные мелочи и удобства.

собственно вопрос: интересно кому такое ПО потестить? или может кто-то уже пользуется чем-то подобным и я велосипед изобретаю - поделитесь опытом?

а вот так выглядит мой вариант:[ Hidden Text ]

скачать программу
последняя версия exe-файла от 29-11-2017

по мере добавления полезностей и красивостей буду обновлять ссылку на exe-файл - нужно его скачать и заменить в папке, остальные файлы трогать не надо
fabeldyr
ЦИТАТА(Genuine Thrashiac @ Jul 7 2016, 16:51:02) <{POST_SNAPBACK}>

я что-то не могу найти RSS на бэндкампе, моя прога фильтрует именно ленту, т.е. тащить новости с сайтов, на которых ленты нет, например darkside.ru, она не может

кроме того, RSS c mail.ru она тоже не может разобрать, потому что у них там каша в коде, возможно есть и другие, но пока всё, что пробовал - читается (металарея, танки, армата, яндекс, игромания, хабр)

инструкция:
распаковать архив
запустить
зайти в меню -> настройки, расставить галочки по желанию
зайти в меню -> RSS, добавить лент по желанию
кликнув на каждую ленту добавить к ней фильтров
для примера там уже лежит моя база с 4 лентами у которых есть какие-то фильтры, можно поиграться с ней, можно просто удалить файл DATA.DB и создать свою базу с нуля
чтобы добавить исполнителей жмёте "добавить" фильтр -> поиск исполнителей -> вставляете в нужное поле адрес папки с музыкой (у меня это E:\) -> начать поиск
сразу скажу, что у меня примерно 100 гигов музыки и прога застряла на поиске на 4 минуты, так что не переживайте - она не висит, ей нужно перелопатить всю вашу библиотеку
в поиске исполнителей есть поле "добавочные символы", это те символы, которые добавятся к каждому исполнителю, для сайта metalarea.org я советую добавить 2 символа " -", тогда если у вас в библиотеке есть группа "hade" будут выведены только новости "hade - albumname", если же ничего не добавить, то будут выведены все новости, содержащие "hade", т.е. например "someband - sHADEs of smth", правда альбомы группы sHADE при этом всё равно будут выводиться, но всё равно огромное количество лишних новостей это отсечёт, правда если группа часто участвует в Split'ах с таким фильтром их можно пропустить, тогда лучше просто оставить названия, также много лишнего будет у фанатов группы I

кстати, т.к. в заголовке новости стиль тоже пишется можно использовать его в качестве фильтра

вроде всё, если будут вопросы и предложения постараюсь оперативно отвечать
fabeldyr
исправил поведение интерфейса - теперь результаты не обновляются каждые 5 минут, а добавляются, т.е. если новость уже ушла из ленты (такое бывает на сайтах с кучей новостей - яндекс, хабр, игромания) она всё равно останется в окне результатов до закрытия программы
+ пара мелочей
ссылка в первом посте

обнаружен конфликт программы с антивирусом AVG: все RSS-ленты, адрес которых начинается с http не читаются при включённом антивирусе, при выключенном читаются не полностью, ленты же с адресами, начинающимися с https читаются корректно в любом случае. Проверено лично - только после полного удаления AVG программа нормально выходит в сеть. Антивирус Касперского с программой не конфликтует - также проверено лично. Другие антивирусы не тестировались.
Shub
Лучше бы на RSS, а нотификации прямо на сайте, как сделано на what.cd, к примеру. Но это уже администрации сайта надо реализовывать.
Хотя, может быть уже тут что-то подобное есть, просто я об этом не знаю? 1488.gif
fabeldyr
ЦИТАТА(Shub @ Jul 10 2016, 20:24:38) <{POST_SNAPBACK}>
Лучше бы на RSS, а нотификации прямо на сайте, как сделано на what.cd, к примеру. Но это уже администрации сайта надо реализовывать.
Хотя, может быть уже тут что-то подобное есть, просто я об этом не знаю? 1488.gif

чтобы сделать "прямо на сайте" нужно API сайта, хотя в этом случае лучше, когда оно в сам сайт встроено
так что нет - тут отдельная сообщалка
скептик
я на darkworld.ru периодически просматриваю "ожидаемые релизы", ставлю "напомнить" и мне сообщают про выход ожидаемого альбома. http://dark-world.ru/announce/
fabeldyr
добавил несколько красивостей и улучшил фильтрацию на предмет лишних совпадений
fabeldyr
теперь фильтры и ленты выводятся в алфавитном порядке по полю "имя" - гораздо удобнее искать когда их 20+ (и тем более 100+)
кстати, можно не крутить колёсико до посинения или тащить скроллбар, а встать курсором на ленту или фильтр и начать вводить с клавиатуры название искомого
fabeldyr
добавил вывод количества новых новостей в уведомление в трее, также сделал их визуальное выделение в окне программы + добавил несколько фильтров для исключения повторного вывода новости при её переименовании
[attachment=7654:news2.jpg][attachment=7653:news1.jpg]
последняя версия exe-шника - в шапке


UPD: исправил пару глобальных ошибок фильтрации
fabeldyr
по просьбе трудящихся добавил работу с сайтом bandcamp
надо отметить, что данный сайт имеет rss-ленты альбомов (НАХРЕНА??!!) и исполнителей, что абсолютно неудобно, потому что никто не будет подписываться на 300 лент на 1 сайте
а вот лент по тегам, которые как раз интересны, там нет, поэтому пришлось парсить саму страницу, которая парсится также, как сделан сам сайт - через неё, родимую

тестилось на трёх страницах:




обнаружены две проблемы:

1)есть вот такие страницы:
где в качестве исполнителя указан издатель, а имя исполнителя всунуто в имя релиза вместе с этим самым именем

решение: фильтр проверяет не только исполнителя, как в RSS металарии, а всё выводимое поле, как в любой другой ленте

2)кодировка
на сайте есть страницы названные как с кодировкой, так и без неё, например Wintercold &quot;Lucifer&quot; или Ásatrú
первый вариант преобразуется в нормальный вариант, второй в кракозябры

решение: пока не придумал

также хочу обратить внимание на адреса страниц - ?sort_field=date - по умолчанию страница сортируется по best selling, что вряд ли интересно
Genuine Thrashiac
fabeldyr, вот спасибо!

А как тебе альбомы разных русскоязычных групп? smile4.gif
вместо названия альбома просто "-" - например
Genuine Thrashiac
ЦИТАТА(fabeldyr @ Sep 16 2016, 16:14:15) <{POST_SNAPBACK}>
по просьбе трудящихся добавил работу с сайтом bandcamp
надо отметить, что данный сайт имеет rss-ленты альбомов (НАХРЕНА??!!) и исполнителей, что абсолютно неудобно, потому что никто не будет подписываться на 300 лент на 1 сайте
а вот лент по тегам, которые как раз интересны, там нет, поэтому пришлось парсить саму страницу, которая парсится также, как сделан сам сайт - через неё, родимую
[ Hidden Text ]
fabeldyr
ЦИТАТА(Genuine Thrashiac @ Sep 17 2016, 10:05:29) <{POST_SNAPBACK}>

что-то я давно не заходил и скриншот уже удалили, но пройдя по ссылке ничего координально нового не обнаружил - в принципе любую страницу с бэндкампа можно вставить в качестве адреса ленты, я просто акцентировал внимание, что если вставить просто https://bandcamp.com/tag/thrash-metal, то результаты вывода будут из наиболее популярных, а чтобы получать новости именно о новых релизах, нужно на странице нажать на такую сортировку и скопировать в программу уже этот адрес, вот
с кодировкой и примером русской группы попробую как-нибудь разобраться, когда будет не так лень
fabeldyr
давно я не занимался прогой, но кое-что накопилось нового за 13 месяцев:

программа пересобрана с новыми библиотеками Qt, библиотека TagLib также пересобрана, т.к. оказалось, что после пересборки самой программы автопоиск не работал - программа зависала на нём
также:
улучшена фильтрация по сайту metalarea.org - 30.01.2017
улучшена работа таймера обновления, первый "скан" сделан сразу после старта - 03.02.2017
немного оптимизирован поиск исполнителей - 09.10.2017
"оживлён" процесс поиска исполнителей на компьютере - 23.10.2017
добавлена возможность включить/отключить, удалить все фильтры - 24.10.2017
ручное вписывание строки с адресом папки с музыкой заменено на диалог выбора папки - 25.10.2017
добавлено автоименование лент и немного улучшена проверка на ошибки в адресе ленты - 25.10.2017

в этот раз нужно скачивать всю программу целиком, просто обновление exe-файла скорее всего будет крашить прогу
fabeldyr
собственно, в отличие от World of Tanks и Armored Warfare дошёл до релиза

версия 1.0, патчноут:

реализованы мультивыбор, мультиредактирование и мультиудаление фильтров и лент
у дочерних окон убрано отображение в панели задач
теперь при вводе фильтров и лент можно просто жать Enter для ввода
добавлен многократный ввод фильтров и лент и его сигнализация
добавлена смена языка интерфейса на английский (так, для прикола)
программа в целом оптимизирована, уменьшено потребление памяти (хотя и так было мало, но теперь ещё меньше), несколько изменений по удобству и ускорению работы
кнопки в окне лент/фильтров заменены на контекстные меню (как было до видно на скриншоте в шапке)
[attachment=8348:menu.png]

у кого версия 0.9 нужно просто обновить exe-файл, у кого старше - скачать всю прогу, потом скачать exe-файл и заменить
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2024 Invision Power Services, Inc.