Случайны выбор дневника Раскрыть/свернуть полный список возможностей


Найдено 12222 сообщений
Cообщения с меткой

torrent - Самое интересное в блогах

Следующие 30  »
apgledom

Как восстановить раздачи

Суббота, 17 Сентября 2016 г. 11:14 (ссылка)

После переустановки Windows все данные о созданных на торрент-трекерах раздачах удаляются. Раздаваемые торренты также могут быть утеряны в результате каких-либо иных операций с компьютером. Чтобы возобновить раздачу файлов, необходимо заново настроить клиент и сгенерировать новые файлы torrent. ЧИТАТЬ ДАЛЬШЕ>>>



Комментарии (0)КомментироватьВ цитатник или сообщество
apgledom

Как восстановить раздачи

Суббота, 17 Сентября 2016 г. 11:04 (ссылка)

После переустановки Windows все данные о созданных на торрент-трекерах раздачах удаляются. Раздаваемые торренты также могут быть утеряны в результате каких-либо иных операций с компьютером. Чтобы возобновить раздачу файлов, необходимо заново настроить клиент и сгенерировать новые файлы torrent. ЧИТАТЬ ДАЛЬШЕ>>>



Комментарии (0)КомментироватьВ цитатник или сообщество
dimjinale

Монастырский чай Здоровый сон

Среда, 14 Сентября 2016 г. 15:13 (ссылка)

bigimg (197x700, 84Kb)
Хроническое недосыпание в перспективе приводит к более серьезным последствиям, чем однократное отсутствие сна в течение 1-2 суток.
Хроническое недосыпание в перспективе приводит к более серьезным последствиям, чем однократное отсутствие сна в течение 1-2 суток.

Комментарии (0)КомментироватьВ цитатник или сообщество
prepdadust

Как раздавать файлы

Пятница, 02 Сентября 2016 г. 21:24 (ссылка)

Объем информации, которая загружена в сеть интернет, колоссален. Каждый день туда добавляются новые и новые файлы. Качать нужные, даже бесплатные программы зачастую приходится с платных файлообменников. Даже если используется бесплатный доступ, он имеет существенные ограничения. Выходом из этой ситуации стало появление торрент-трекеров, позволяющих качать не из интернета, а с удаленного компьютера, на котором эта информация лежит. Так решается сразу несколько проблем: не нужно загружать большой объем информации, не нужно за это платить, не засоряется интернет. ЧИТАТЬ ДАЛЬШЕ>>>



Комментарии (0)КомментироватьВ цитатник или сообщество
rss_rss_hh_new

Чебурашка и торренты (сказка)

Пятница, 05 Августа 2016 г. 14:22 (ссылка)

Все совпадения с реальными ситуациями и названиями проектов случайны.

На правах фанфика.



Сказка — ложь, да в ней намёк — добрым молодцам урок!



Жил да был Чебурашка, как водится, в телефонной будке. Жил — не тужил, и был у него диалап — ни в сказке сказать, ни пером описать. Не 4G, конечно, но книжки с рецептами мороженого и чертежи вертолётов с трекера volshebnik.su он регулярно скачивал. И картинки с апельсинами. И жил бы он себе припеваючи, но злобная Шапокляк послала к его провайдеру крыску Лариску со спецзаданием: заблокировать Чебурашке доступ к volshebnik.su!

Скоро сказка сказывается, да не скоро дело делается. Тридцать дней крыска Лариска грызла провода, куда-то что-то закорачивала да хвостом по клавиатуре ночами лупила. А на тридцать первый день набрал Чебурашка адрес любимого сайта — а ему заглушка: так мол и так, сайт заблокирован.



Пригорюнился Чебурашка, опустил свои большие уши, поскрёб лапками затылок и подумал: "А что мне эта блокировка? У меня TOR Browser есть. Зайду да торрент-файл скачаю". Сказано — сделано. Скачан файл, запущен клиент… Да вот беда: не может чебурашкин transmission у сервера список участников запросить! И KTorrent не может. Надумал Чебурашка прокси в настройках указать — а тогда весь трафик через прокси идёт. И не только к volshebnik.su, но и к nagarmoshke.info. И не только запрос пиров, но и содержимое торрента. Закручинился Чебурашка и пошёл к товарищу своему, крокодилу Гене, и молвил Чебурашка: "Помоги мне настроить торрент, ты ж крокодил".



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

Крокодил Гена, как и все крокодилы-программисты, использовал OpenSUSE. Перечитав исходники transmission с утреца, Гена пошёл на работу в зоопарк, где работал на полставки ведущим аллигатором первой категории (в основном, конечно, за выслугу лет). Оставшиеся полставки времени Гена тратил на фриланс — вместе с пенсией на жизнь хватало, да ещё сердобольные посетители зоопарка нет-нет да и подкормят. Хорошенько всё обдумав (благо основная работа интеллектуальных усилий не требовала), вечером наш крокодил начал писать код, и к утру у Чебурашки на почтовом ящике лежал свежесобранный торрент-клиент, который имел специальный список прокси. Если какой-то запрос к сайту оканчивался неудачей — программа последовательно пробовала отправить запрос через прокси из списка.



Чебурашка повеселел, купил клей, ножницы, склеил по свежескачанным чертежам голубой вертолёт и подарил его Гене. Гена расчувствовался.

"А что, — подумал он, — если бедный Чебурашка не сумеет найти новые списки прокси, или сайт с их каталогом тоже подвергнется нападению Шапокляк?".

Три дня и три ночи Гена думал, три железных воблы изгрыз, три железных мышки истёр — да три фичи закоммитил.

Первая фича позволяла клиентам новой версии обмениваться списками прокси. Вторая фича позволяла тому клиенту, у которого сайт недоступен, попросить любого другого клиента с новой версией самостоятельно сделать запрос участников к трекеру, по сути, побыть прокси-сервером. А третья фича позволяла в один клик установить и запустить TOR/I2P/Freenet и совершать запросы через них, если до какого-то сайта не получается достучаться через прокси (классические или "товарищеские" — всё-таки не все ещё успели поставить новую версию программы). Отправил Гена пуллреквест на гитхабе и пошёл на работу — отсыпаться.



Шапокляк негодовала. "Проклятое зелёное бревно! — написала она Гене по e-mail — Я тебе покажу! Я сервера сайта volshebnik.su так изгажу, что вовек не восстановите!". Гена незнакомый адрес в гугль вбил, в яндекс вбил, не нашёл ничего и понял, что злобная старушка зарегистрировала одноразовый ящик на почте "Мыло — чистое, как небо", где телефон не требуют.

И снова три дня и три ночи думал Гена. И не придумал ничего лучше, чем добавить в torrent-протокол новый вид сообщения — "поделиться торрент-файлом". "Торрент-файлы небольшие, — решил он, — а винчестеры нынче вместительные. От пары десятков мегабайт не убудет, не обязательно же всю базу центрального трекера хранить. Пусть теперь каждый клиент сохраняет так много торрент-файлов, как разрешит ему пользователь, и периодически обменивается ими со всеми пирами, которых видит". Написал Гена код, запушился, отправил пулл-реквест и пошёл на работу.



Приходит Гена с работы вечером — а лев Чандр ему ревью пишет: "Плохо ты, Гена, сделал. Спамерам раздолье будет. Закидает нашего Чебурашку Шапокляк поддельными торрент-файлами с вирусами и страшилками, что тогда?".

И снова три дня и три ночи думал Гена, три железных трубки изгрыз, три железных кепки истёр. И решил Гена применить старый добрый proof-of-work: чтобы сгенерировать контейнер с торрент-файлом и описанием, надо число подобрать, чтобы хэш контейнера, состоящего из классического торрент-файла, описания к нему и этого самого числа "nonce", был меньше определённого значения. Всё как в биткоине, только без блокчейна.

"Вот только кто же будет тратить часы вычислительной мощности своих ЭВМ, чтобы смайнить торрент-контейнер?" — задумался Гена. "А пусть те, кто майнит, в описание добавляют объявление о поиске друзей, если они одиноки!" — пришёл ему на помощь Тобик.

Гена обрадовался, переделал пуллреквест...



Многие снова обновились на новую версию торрент-клиента, в которой появился новый пункт меню — "Каталог известных торрентов". Вот только царил в нём беспорядок — ни оценок, ни комментариев. Да и ценные торренты, например, авторские бардовские альбомы для nagarmoshke.info, зачастую пропадали из виду, как только выложивший выходил в оффлайн.




  • А всё потому, — сказала девочка Галя, — что распространять смайненный кем-то контейнер невыгодно, там чужое объявление о поиске друзей, а пересчитывать хэши — затратно по ресурсам. Давайте сделаем возможность распространять комментарии к раздачам, которые тоже нужно смайнить, и вставим в каталог такое правило: первым отображается комментарий, переданный первым, то есть вместе с раздачей, а потом уже — по оценкам или ещё как-то. Пусть комментарий майнить будет на порядки проще, тогда те, кто распространяет раздачи, тоде смогут писать свои объявления о поиске друзей!



"Какие же у меня замечательные друзья! — подумал Гена, — как мы хорошо проучили Шапокляк! А заодно и укрепили позиции опенсорса на этом фронте — пользователи предпочитают те клиенты, которые лучше качают в обход блокировок! И самое главное: ведь пользователям не пришлось ставить и настраивать дополнительные программы, все обошлось обновлением уже привычного клиента, и обратная совместимость сохранена!"



P. S. Хабр всезнающий, а не начали ли где-нибудь (в каком-нибудь торрент-клиенте) уже эту сказку реализовывать? Вероятно, в похожем направлении движется qBitTorrent (написан на C++/Boost/Qt, активно развивается).


Original source: habrahabr.ru.

https://habrahabr.ru/post/307022/?utm_source=habrahabr&utm_medium=rss&utm_campaign=best

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_rss_hh_new

Cериалокачалка на python3 с поддержкой расширений

Пятница, 08 Июля 2016 г. 14:48 (ссылка)

В качестве вступления стоит сказать что я пользуюсь macOS и потому некоторые части:




  • Автозапуск (launchd)

  • Формат конфигурационных файлов (plist)

  • Программа, используемая для уведомлений (terminal-notifier)



будут специфичны для этой ОС. Однако, если Вас заинтересует проект, думаю, поменять пару путей и слегка поправить несколько функций, чтобы заставить этот код работать с Вашей системой уведомлений, yaml'ом и, допустим, кроном, не составит труда.



Итак, к делу.



Проверять трекеры на обновления любимых телевизионных шоу, вспоминать в момент когда вышел новый эпизод, смотрел ли ты предыдущий, — надоедает. К тому же, как известно, все что нужно делать больше двух раз, стоит автоматизировать. Проект был начат на скорую руку и, вероятно, будет совершенствоваться.



Что же он содержит?




  1. Класс парсера в parser.py

  2. Класс загрузчика в core.py

  3. Плагины, наследующие класс загрузчика в директории pugins

  4. Файлы конфигурации плагинов в директории configs

  5. Директорию icons для иконок увдомлений

  6. Файл main.py, дергающий плагины

  7. Файл install.py



Класс парсинга



Так как почти на всех сайтах сериалов есть свои RSS-ленты, было решено для упрощения процесса написания плагинов слепить функцию парсинга, позволяющую автоматически распарсить rss по ссылке и выдать список пар (заголовок, ссылка) с возможностью указания кодировки.



Чуть позже пришла необходимость простого парсинга html, а потом подумалось что некоторые сайты могут отдавать ссылки и через api в формате json.



Так функция превратилась в класс, хранящий сессию (requests Session) для сайтов, требующих авторизации и возвращающий response-объект с методами html(), rss(), json() и auto(). Последний пытается угадать содержимое (xml, html или json) и кодировку по заголовку 'Content-Type'. По умолчанию — 'utf-8' и html.




  • Метод html() возвращает объект beautifulsoup всей страницы

  • Метод rss() вызвращает массив кортежей (заголовок, ссылка)

  • Метод json() возвращает объект, полученный методом json.loads текста страницы



Класс загрузчика



Предоставляет плагинам методы parse() и download().




  • Метод parse() предоставляет возможность передать ссылку и параметры url. Он же проверяет 'If-Modified-Since' если сайт предоставляет данные о последнем изменении. Возвращает response-объект из файла parse.py.

  • Метод download() принимает словарь с данными о названии сериала, эпизода, ссылкой и прочими мелочами, а так же http-заголовки и куки. А далее самостоятельно производит всю магию. Загружает файл в предварительно созданную им папку "Название_сериала[имя_класса_плагина]", где предполагается что имя класса плагина — название студии озвучания/сайта с которого происходит загрузка. Если файл — торрент, загружает эпизод с торрента и удаляет файл торрента. Загрузка производится с помощью aria2c, который должен быть установлен в системе и находиться в одной из директорий, прописанных в $PATH. После чего вызывается метод save(), который сохраняет ссылки в файл конфигурации для предотвращения повторной загрузки.

  • Метод __notify(), который вызывается при начале и окончании загрузки, если по пути /usr/local/bin/terminal-notifier обнаружено соответствующее приложение. Посмотреть как это выглядит можно чуть ниже.



Плагины



Классы, наследующие класс загрузчика, реализующие метод start() в котором надо произвести парсинг и вызвать метод download() с ожидаемыми параметрами.



Файлы конфигурации плагинов



*.plist



Содержат:




  • Интересующее качество

  • Список подписок

  • Список исключений ("полный сезон", например)

  • last_modified для сайтов, дающих информацию о последнем изменении

  • Сюда же будет записан список ссылок для предотвращения повторной загрузки



Директория icons



Папка в которую можно положить файлы иконок, которые будут использованы при уведомлении о загрузке/окончании загрузки эпизодов из соответствующих источников. Названия иконок должны соответствовать названиям плагинов, но с расширеним jpg/ico/png.



main.py



Дергает поочередно метод start() всех плагинов в директории plugins.



install.py




  • Установит зависимости

  • Переместит файлы проекта в ~/.NB-series-downloader

  • Создаст файл автозапуска

  • Удалит директорию склонированного репозитория



Автозагрузка



Файл install.py сделает это за Вас, но если Вы решили сделать все вручную, то...



Насколько мне известно, launchd ничего не знает о переменных окружения, посему Вам придется самостоятельно заменить в тексте ниже $HOME на путь до домашнего каталога вашего пользователя /Users/Username и, возможно, изменить путь до директории со скриптами, если вы положили их в другое место.







Disabled

EnvironmentVariables

PATH
/usr/local/bin

KeepAlive

SuccessfulExit


Label
series_downloader
ProgramArguments

/usr/local/bin/python3
$HOME/.NB-series-downloader/main.py

RunAtLoad

StartInterval
900
WorkingDirectory
$HOME/.NB-series-downloader



Сам файл с этим содержимым стоит назвать series_downloader.plist и положить в ~/Library/LaunchAgents/.

Загрузить описанные в этом файле задания сразу можно командой



launchctl load ~/Library/LaunchAgents/series_downloader.plist


Иначе задания активируются при следующей загрузке компьютера.

Эти действия заставят main.py, лежащий в директории $HOME/.NB-series-downloader/, запускаться каждые 900 секунд (15 минут).



Итого



Ссылка на github.



Честно говоря, первое что я туда выкладываю, так что мог напортачить. Подскажите, если что не так.



Уведомление о начале загрузки:



Уведомление о начале загрузки

После загрузки надпись "Загрузка начата" сменится на "Загрузка закончена".

Вот и все что мы увидим в результате работы плагина, а эпизоды будут аккуратненько сложены в папочку и ждать своего часа.



Сериалы в моем случае складываются в Series в том же каталоге (можно указать иное место в self.series_dir класса downloader в core.py).



А для просмотра загруженных серий мною написан workflow для Alfred 3:

Список сериалов

После просмотра каждой серии он предлагает:




  • Удалить оную (я не храню архив, всё просмотренное отправляется в корзину)

  • Запрашивает оценку эпизода от 1 до 5, а так же отмечает только что просмотренную таковой в моем аккаунте на myshows.me и выставляет рейтинг эпизода используя их api

  • Выводит уведомление о том удачно ли все прошло

  • По клику на уведомление можно открыть страницу только что просмотренного эпизода на myshows



Но это всё — уже совсем другая история...


Original source: habrahabr.ru.

https://habrahabr.ru/post/304770/?utm_source=habrahabr&utm_medium=rss&utm_campaign=best

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество

Следующие 30  »

<torrent - Самое интересное в блогах

Страницы: [1] 2 3 ..
.. 10

LiveInternet.Ru Ссылки: на главную|почта|знакомства|одноклассники|фото|открытки|тесты|чат
О проекте: помощь|контакты|разместить рекламу|версия для pda