Re-Tracker | Система локальных ретрекеров | Ретрекер _ Патчер торрентов _ Новая версия патчера | 1.9.1.5
Автор: Vedmed 7.1.2009, 20:36
Исправил вроде досадную ошибку с двойным отображением основного трекера. Проверяйте внимательно - основной трекер теряться не должен (но на определенных клиентах наверно может - стандарт для каждого "свой").
http://re-tracker.ru/TorrentPatcher.exe
Автор: Ostr 7.1.2009, 23:45
Ну теперь осталось добавить авто-тестер доступных ретрекеров по городу и все будет)) куда код скинуть?))
Автор: Shift 7.1.2009, 23:46
лепани тут или в TODO тему
Автор: Ostr 8.1.2009, 11:18
в приложении код. по любым вопросам - в лучше в асю, можно и тут пнуть
в аттаче консольное приложение, для теста готовых cs файлов.
trackers.ini изменилось - в дебаге образец
проверка доступности идет довольно долго, можно или попытаться поиграться с распараллеливанием проверки или сделать бекграунд процессом, правда первый запуск получится очень долгим)))
есть еще пара задумок, на выходных займусь реализацией))
в приложении код. по любым вопросам - в лучше в асю, можно и тут пнуть
в аттаче консольное приложение, для теста готовых cs файлов.
trackers.ini изменилось - в дебаге образец
проверка доступности идет довольно долго, можно или попытаться поиграться с распараллеливанием проверки или сделать бекграунд процессом, правда первый запуск получится очень долгим)))
есть еще пара задумок, на выходных займусь реализацией))
Достаточно было просто функцию CheckConnection выложить. Да, эт все можно (отдельным тредом, как обновление, по любому придется ставить...) - но кстати по поводу изменения файла трекеров - тут опять же вопрос - получается теперь нам надо хранить список номеров "рабочих" ретрекеров и тщательно его "оберегать"? (или наоборот список нерабочих?) Для Москвы - оно, но для всех менять - хз
так пусть остануться имена надо б обучить его чтоб он на них внимания не обращал , по идее конечно идея с тестом доступности правельная , но надо тогда чтоб патчер висел в качевстве сервиса\фоном и проверял ,от того что приложение без окон что то делает каспер подимет такой вопль , а когда он узнает что оно еще и к разным IP коннектиться сразу окрестит как спам .... хоть и порты другие
это так мысли в слух )
Автор: Vedmed 8.1.2009, 15:30
Цитата(Shift @ 8.1.2009, 14:24)
так пусть остануться имена надо б обучить его чтоб он на них внимания не обращал , по идее конечно идея с тестом доступности правельная , но надо тогда чтоб патчер висел в качевстве сервиса\фоном и проверял ,от того что приложение без окон что то делает каспер подимет такой вопль , а когда он узнает что оно еще и к разным IP коннектиться сразу окрестит как спам .... хоть и порты другие
это так мысли в слух )
Почему без окон-то Окно есть (ну и что что маленькое) Автоматически мы это дело зарубим - сделаем после 1го запуска и настройки и "по кнопке".
По поводу формата вопрос в другом - в Москве счас 87 ретрекеров - кто с кем - неясно. Чтоб он проверял "в районе" - тут проблем нет. Но задумка другая у человека - чтоб сразу все ретрекеры провайдера проверить.
Автор: Shift 8.1.2009, 15:32
Согласен , но тогда надо чтоб он проверял раз в день при включении компа допустим , и по планировщику (если комп всегда работает допустим в 2 ) так как в 3 обновляеться винда
но надо тогда вешать его как сервис чтоль ? и проверять на наличее отзыва от трекерной статистики , тогда разумно сюда будет прикрутить сообщение а том какие ретрекеры не работают и тогда если не у кого не работает можно будет выкидывать
Автор: Ostr 8.1.2009, 22:04
1) одну функцию не интересно ) 2) разделение на город-провайдер более оправдано, чем город-провайдер-район (из-за пиринга) 3) глобальную проверку будет необходимо сделать только при первом запуске, в дальнейшем достаточно делать так:
Добавляем в разделы [Ретрекеры Город Провайдер] еще 1 пункт Version=int
если у локального файла и файла на сервере Version не изменилось, ничего делать не надо. если что-то изменилось, то делаем diff между районами и проверяем только добавленные ретрекеры, если ретрекеры были удалены, то их тоже удаляем
ЗЫ : имхо главное сначала придумать, что писать, а написать уже не проблема так как патчер имхо использует приличное количество людей, то необходимо сделать его легко расширяемым и модифицируемым
ЗЫЫ : если каспер заорет - то он войдет в топ самых параноидальных антивирей в мире)))
Автор: Shift 8.1.2009, 22:05
да нет тестировать надо все а не только новые так как пиринг имеет свойство гулять
Автор: Ostr 8.1.2009, 22:17
пиринг гуляет не каждый день сделать тест раз в неделю (день) и все, в бэкграуде
Автор: cnh 9.1.2009, 0:02
Объявили о ретрекере в СВАО - Алексеевский. Появилось сообщение, что адрес добавлен в патчер. Зашёл в эту тему скачать патчер...устанавливаю, а там из городов только Питер оставлся. Глюк?
Автор: Shift 9.1.2009, 0:11
а выход в интернет патчеру разрешен ? он при первом запуске качает себе базу
Автор: cnh 9.1.2009, 0:15
Цитата(Shift @ 8.1.2009, 23:11)
а выход в интернет патчеру разрешен ? он при первом запуске качает себе базу
Sorry, видимо канал был забит и не прошли обновления - сейчас закачку по торрентам остановил, установил патчер и при его запуске всё было ок.
Автор: aspeed08 9.1.2009, 0:21
При попытке пропатчить приватный торрент-файл с гейм-торрент.инфо вылазит окно:
Невозможно загрузить: 'magnet:?xt=urn:btih:6c...:2710/announce' - Синтаксическая ошибка в имени файла, имени папки или метке тома. !
Обычный торрент-файлы патчит нормально. Есть ли способ забороть проблему или придётся все приватные раздачи руками редактировать?
Автор: Shift 9.1.2009, 0:40
попробуй любую магнет ссылку запустить и посмотри передаст ли он ее торренту или нет
Автор: Vedmed 9.1.2009, 0:58
Так, сегодня несколько часов мучал потоки - то, с какой скоростью он проверяет в тестовом проекте было совершенно неприемлемо - невероятно медленно. 2110 секунд (35 минут).
Если кто-то знает лучше, или может предложить иной метод, нежели этот - вэлкам...
Текущая функция
Код
/// <summary> /// Checks connection to current server and port /// </summary> /// <param name="server">server to connect</param> /// <param name="port">port to connect</param> /// <returns>connection success or not</returns> private void CheckConnection() { if (!_http) { IPHostEntry hostEntry = null; _result = false; try { // Get host related information. hostEntry = Dns.GetHostEntry(_server);
// Loop through the AddressList to obtain the supported AddressFamily. This is to avoid // an exception that occurs when the host IP Address is not compatible with the address family // (typical in the IPv6 case). foreach (IPAddress address in hostEntry.AddressList) { IPEndPoint ipe = new IPEndPoint(address, _port); Socket tempSocket = new Socket(ipe.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
HttpWebResponse rspFP = (HttpWebResponse)reqFP.GetResponse(); if (HttpStatusCode.OK == rspFP.StatusCode) { // HTTP = 200 - Internet connection available, server online rspFP.Close(); _result = true; } else { // Other status - Server or connection not available rspFP.Close(); _result = false; } } catch (WebException) { // Exception - connection not available _result = false; } } }
}
Итого: -удалось рассинхронизировать проверку ретрекеров - полный список Москвы (87 хостов) он теперь проверяет за 78 сек. (вот такой каламбурчик - от машины не зависит, от коннекта тоже - ест в пике 2Кб/с, вся проблема именно в ожидании ответа - ждет ответа он "до упора"). -не удалось запихнуть весь пул потоков в отдельный поток - посему все это происходит "на глазах изумленных пользователей". -варианты с сервисами/отдельными процессами даже не рассматривались - это патчер - он должен быть маленьким и не надоедливым. -ретрекеры плохо проверяются по ответу http. -адрес должен в обязательном порядке содеражть порт.
PS Так как мы еще не закончили ворошить список ретрекеров из старого в новый - просьба всем внимательно на него смотреть. Это "очень тестовая" версия. http://www.box.net/shared/um5ta3l1jl
Автор: Vedmed 9.1.2009, 1:00
Цитата(aspeed08 @ 8.1.2009, 23:21)
При попытке пропатчить приватный торрент-файл с гейм-торрент.инфо вылазит окно:
Невозможно загрузить: 'magnet:?xt=urn:btih:6c...:2710/announce' - Синтаксическая ошибка в имени файла, имени папки или метке тома. !
Обычный торрент-файлы патчит нормально. Есть ли способ забороть проблему или придётся все приватные раздачи руками редактировать?
Ссылку-то дай?)
Автор: aspeed08 9.1.2009, 1:31
Цитата(Shift @ 8.1.2009, 23:40)
попробуй любую магнет ссылку запустить и посмотри передаст ли он ее торренту или нет
Я не знаю как это осуществить с помощью торрент-клиента.
utorrent.com придется обновляться. Знаю, что не по душе 1.8.1 - но с магнетками он работает нормально. (Хотя если не хочется - посмотри в хистори какой-там был последний без магнетов - вроде http://www.box.net/shared/a6puv6t3si).
Автор: FreeM@N 9.1.2009, 7:01
Цитата(Vedmed @ 9.1.2009, 0:58)
Так, сегодня несколько часов мучал потоки - то, с какой скоростью он проверяет в тестовом проекте было совершенно неприемлемо - невероятно медленно. 2110 секунд (35 минут).
А выставить таймаут скажем не "до-упора", а 3-5 секунд? И http лучше заменить на сокеты с таймаутами, http блин грёбанный действительно всё тока портит
Про "обязательно должен быть порт" - если он не указан - ставь восьмидесятый
Автор: Ostr 9.1.2009, 11:01
сокеты уже используются, вот таймаут изменить это идея
а про порт - лучше 2710 - порт ретрекера как-никак
Автор: aspeed08 9.1.2009, 11:08
Цитата(Vedmed @ 9.1.2009, 0:51)
utorrent.com придется обновляться. Знаю, что не по душе 1.8.1 - но с магнетками он работает нормально. (Хотя если не хочется - посмотри в хистори какой-там был последний без магнетов - вроде http://www.box.net/shared/a6puv6t3si).
Спасибо за советы, попробую.
UPD: Обновил торрент-клиент всё заработало как надо. Спасибо за помощь
Автор: Vedmed 9.1.2009, 13:21
Цитата(FreeM@N @ 9.1.2009, 6:01)
А выставить таймаут скажем не "до-упора", а 3-5 секунд? И http лучше заменить на сокеты с таймаутами, http блин грёбанный действительно всё тока портит
Про "обязательно должен быть порт" - если он не указан - ставь восьмидесятый
Как ни странно http работает быстрее - на полногтя (процентов на 10), но все же. Другое дело он плохо работает с ip-трекерами Надо его копать... По поводу порта - мы с asachak уже обсудили - есть https (443), и, в принципе есть 8080 - предсказать правильно ли они буду обрабатываться сложно, потому легче пройтись по списку и добавить : к десятку ретрекеров.
Цитата(Ostr @ 9.1.2009, 10:01)
сокеты уже используются, вот таймаут изменить это идея
а про порт - лучше 2710 - порт ретрекера как-никак
Вот с таймаутом пока чешу репу... Помимо 2710 есть еще 65534 порта.
Автор: FreeM@N 9.1.2009, 16:26
ну по поводу порта можно так сделать: выцепляешь его из ссылки ретрекера если его нет то порт будет выбираться по такому условию: port = (protocol=="http") ? : 443
ну а если он есть то...тогда и делать ничего не надо, просто вот например приратбей редиректит ели обращаться с указанием порта...
Автор: Shift 9.1.2009, 16:29
443 имелось ввиду ели https - SSL хотя XBT SSL вроде не поддерживает _ Но это на случай установки других скриптов ретрекера
Автор: Ostr 9.1.2009, 22:25
код патчера можно еще раз увидеть?)
Автор: Vedmed 9.1.2009, 22:30
Цитата(Ostr @ 9.1.2009, 21:25)
код патчера можно еще раз увидеть?)
Он ужасен, так что лучше не стоит... А вообще все как обычно - http://www.box.net/shared/u65h9maqez. Ссылка постоянная, просто добавляю версии по ходу...
Автор: Ostr 9.1.2009, 22:45
рефакторинг наше все - собстно им и хотел бы заняться