Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Новая версия патчера | 1.9.1.5
Re-Tracker | Система локальных ретрекеров | Ретрекер > РеТрекер > Патчер торрентов
Vedmed
Исправил вроде досадную ошибку с двойным отображением основного трекера.
Проверяйте внимательно - основной трекер теряться не должен (но на определенных клиентах наверно может - стандарт для каждого "свой").

1.9.1.5
Ostr
Ну теперь осталось добавить авто-тестер доступных ретрекеров по городу и все будет))
куда код скинуть?))
Shift
лепани тут или в TODO тему
Ostr
в приложении код.
по любым вопросам - в лучше в асю, можно и тут пнуть

в аттаче консольное приложение, для теста готовых cs файлов.

trackers.ini изменилось - в дебаге образец

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

есть еще пара задумок, на выходных займусь реализацией))

Vedmed
Цитата(Ostr @ 8.1.2009, 10:18) *
в приложении код.
по любым вопросам - в лучше в асю, можно и тут пнуть

в аттаче консольное приложение, для теста готовых cs файлов.

trackers.ini изменилось - в дебаге образец

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

есть еще пара задумок, на выходных займусь реализацией))

Достаточно было просто функцию CheckConnection выложить.
Да, эт все можно (отдельным тредом, как обновление, по любому придется ставить...) - но кстати по поводу изменения файла трекеров - тут опять же вопрос - получается теперь нам надо хранить список номеров "рабочих" ретрекеров и тщательно его "оберегать"?
(или наоборот список нерабочих?)
Для Москвы - оно, но для всех менять - хз unsure.gif

Сейчас
[Районы Москва Корбина]
Количество=110
1=ЦАО_Арбат http://local-torrent-stats.no-ip.org:2710/announce http://hg-services2.corbina.net:2710/announce http://corbina-local-re-tracker.no-ip.org:2710/announce
2=ЦАО_Басманный http://local-torrent-stats.no-ip.org:2710/announce http://hg-services2.corbina.net:2710/announce http://corbina-local-re-tracker.no-ip.org:2710/announce
3=ЦАО_Красносельский http://local-torrent-stats.no-ip.org:2710/announce http://hg-services2.corbina.net:2710/announce http://corbina-local-re-tracker.no-ip.org:2710/announce
4=ЦАО_Мещанский http://10.208.13.245:2710/announce http://local-torrent-stats.no-ip.org:2710/announce http://hg-services2.corbina.net:2710/announce http://10.48.163.235:2710/announce http://corbina-local-re-tracker.no-ip.org:2710/announce
5=ЦАО_Пресненский http://local-torrent-stats.no-ip.org:2710/announce http://hg-services2.corbina.net:2710/announce http://corbina-local-re-tracker.no-ip.org:2710/announce
6=ЦАО_Таганский http://local-torrent-stats.no-ip.org:2710/announce http://hg-services2.corbina.net:2710/announce http://corbina-local-re-tracker.no-ip.org:2710/announce
7=ЦАО_Якиманка http://10.48.237.147:2710/announce http://local-torrent-stats.no-ip.org:2710/announce http://hg-services2.corbina.net:2710/announce http://corbina-local-re-tracker.no-ip.org:2710/announce
8=ЦАО_Хамовники http://local-torrent-stats.no-ip.org:2710/announce http://hg-services2.corbina.net:2710/announce http://corbina-local-re-tracker.no-ip.org:2710/announce
9=ЦАО_Замоскворечье http://local-torrent-stats.no-ip.org:2710/announce http://hg-services2.corbina.net:2710/announce http://10.48.163.235:2710/announce http://corbina-local-re-tracker.no-ip.org:2710/announce
10=ЦАО_Тверской http://local-torrent-stats.no-ip.org:2710/announce http://hg-services2.corbina.net:2710/announce http://corbina-local-re-tracker.no-ip.org:2710/announce http://10.21.59.239:2710/announce
11=САО_Аэропорт http://local-torrent-stats.no-ip.org:2710/announce http://hg-services2.corbina.net:2710/announce http://corbina-local-re-tracker.no-ip.org:2710/announce
12=САО_Беговой http://10.253.50.254:2710/announce http://local-torrent-stats.no-ip.org:2710/announce http://hg-services2.corbina.net:2710/announce http://corbina-local-re-tracker.no-ip.org:2710/announce
13=САО_Бескудниково http://local-torrent-stats.no-ip.org:2710/announce http://hg-services2.corbina.net:2710/announce http://10.48.163.235:2710/announce http://corbina-local-re-tracker.no-ip.org:2710/announce
14=САО_Войковский http://local-torrent-stats.no-ip.org:2710/announce http://hg-services2.corbina.net:2710/announce http://corbina-local-re-tracker.no-ip.org:2710/announce


Предлагается
[Ретрекеры Москва Корбина]
Количество=87
1=http://local-torrent-stats.no-ip.org:2710/announce
2=http://hg-services2.corbina.net:2710/announce
3=http://corbina-local-re-tracker.no-ip.org:2710/announce
4=http://10.208.13.245:2710/announce
5=http://10.48.163.235:2710/announce
6=http://10.48.237.147:2710/announce
7=http://10.21.59.239:2710/announce
8=http://10.253.50.254:2710/announce
9=http://10.179.20.228:2710/announce
10=http://10.239.4.231:2710/announce
11=http://10.199.72.223:2710/announce
12=http://10.199.74.239:2710/announce
13=http://10.193.29.179:2710/announce
14=http://hmn.pp.ru:2710/announce
Shift
так пусть остануться имена надо б обучить его чтоб он на них внимания не обращал , по идее конечно идея с тестом доступности правельная , но надо тогда чтоб патчер висел в качевстве сервиса\фоном и проверял ,от того что приложение без окон что то делает каспер подимет такой вопль , а когда он узнает что оно еще и к разным IP коннектиться сразу окрестит как спам .... хоть и порты другие

это так мысли в слух )
Vedmed
Цитата(Shift @ 8.1.2009, 14:24) *
так пусть остануться имена надо б обучить его чтоб он на них внимания не обращал , по идее конечно идея с тестом доступности правельная , но надо тогда чтоб патчер висел в качевстве сервиса\фоном и проверял ,от того что приложение без окон что то делает каспер подимет такой вопль , а когда он узнает что оно еще и к разным IP коннектиться сразу окрестит как спам .... хоть и порты другие

это так мысли в слух )

Почему без окон-то wink.gif Окно есть (ну и что что маленькое)
Автоматически мы это дело зарубим - сделаем после 1го запуска и настройки и "по кнопке".

По поводу формата вопрос в другом - в Москве счас 87 ретрекеров - кто с кем - неясно.
Чтоб он проверял "в районе" - тут проблем нет.
Но задумка другая у человека - чтоб сразу все ретрекеры провайдера проверить.
Shift
Согласен , но тогда надо чтоб он проверял раз в день при включении компа допустим , и по планировщику (если комп всегда работает допустим в 2 ) так как в 3 обновляеться винда

но надо тогда вешать его как сервис чтоль ? и проверять на наличее отзыва от трекерной статистики , тогда разумно сюда будет прикрутить сообщение а том какие ретрекеры не работают и тогда если не у кого не работает можно будет выкидывать smile.gif
Ostr
1) одну функцию не интересно smile.gif)
2) разделение на город-провайдер более оправдано, чем город-провайдер-район (из-за пиринга)
3) глобальную проверку будет необходимо сделать только при первом запуске, в дальнейшем достаточно делать так:

Добавляем в разделы [Ретрекеры Город Провайдер] еще 1 пункт Version=int

если у локального файла и файла на сервере Version не изменилось, ничего делать не надо. если что-то изменилось, то делаем diff между районами и проверяем только добавленные ретрекеры, если ретрекеры были удалены, то их тоже удаляем

ЗЫ : имхо главное сначала придумать, что писать, а написать уже не проблема smile.gif
так как патчер имхо использует приличное количество людей, то необходимо сделать его легко расширяемым и модифицируемым smile.gif

ЗЫЫ : если каспер заорет - то он войдет в топ самых параноидальных антивирей в мире)))
Shift
да нет тестировать надо все а не только новые так как пиринг имеет свойство гулять
Ostr
пиринг гуляет не каждый день smile.gif
сделать тест раз в неделю (день) и все, в бэкграуде smile.gif
cnh
Объявили о ретрекере в СВАО - Алексеевский.
Появилось сообщение, что адрес добавлен в патчер.
Зашёл в эту тему скачать патчер...устанавливаю, а там из городов только Питер оставлся. Глюк?
Shift
а выход в интернет патчеру разрешен ? он при первом запуске качает себе базу
cnh
Цитата(Shift @ 8.1.2009, 23:11) *
а выход в интернет патчеру разрешен ? он при первом запуске качает себе базу

Sorry, видимо канал был забит и не прошли обновления - сейчас закачку по торрентам остановил, установил патчер и при его запуске всё было ок. smile.gif
aspeed08
При попытке пропатчить приватный торрент-файл с гейм-торрент.инфо вылазит окно:

Невозможно загрузить:
'magnet:?xt=urn:btih:6c...:2710/announce'
- Синтаксическая ошибка в имени файла, имени папки или метке тома. !


Обычный торрент-файлы патчит нормально.
Есть ли способ забороть проблему или придётся все приватные раздачи руками редактировать?
Shift
попробуй любую магнет ссылку запустить и посмотри передаст ли он ее торренту или нет
Vedmed
Так, сегодня несколько часов мучал потоки - то, с какой скоростью он проверяет в тестовом проекте было совершенно неприемлемо - невероятно медленно. 2110 секунд (35 минут). mega_shok.gif

Если кто-то знает лучше, или может предложить иной метод, нежели этот - вэлкам...
Текущая функция
Код
            /// <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);

                            tempSocket.Connect(ipe);

                            if (tempSocket.Connected)
                            {
                                _result = true;
                                tempSocket.Close();
                            }
                        }
                    }
                    catch
                    {
                        _result = false;
                    }
                }
                else
                {
                    try
                    {
                        HttpWebRequest reqFP = (HttpWebRequest)HttpWebRequest.Create(_server);

                        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 Так как мы еще не закончили ворошить список ретрекеров из старого в новый - просьба всем внимательно на него смотреть. Это "очень тестовая" версия.
1.9.1.6
Vedmed
Цитата(aspeed08 @ 8.1.2009, 23:21) *
При попытке пропатчить приватный торрент-файл с гейм-торрент.инфо вылазит окно:

Невозможно загрузить:
'magnet:?xt=urn:btih:6c...:2710/announce'
- Синтаксическая ошибка в имени файла, имени папки или метке тома. !


Обычный торрент-файлы патчит нормально.
Есть ли способ забороть проблему или придётся все приватные раздачи руками редактировать?

Ссылку-то дай?)
aspeed08
Цитата(Shift @ 8.1.2009, 23:40) *
попробуй любую магнет ссылку запустить и посмотри передаст ли он ее торренту или нет


Я не знаю как это осуществить с помощью торрент-клиента.

Цитата(Vedmed @ 9.1.2009, 0:00) *
Ссылку-то дай?)


Вот, например: http://game-torrent.info/forum/viewtopic.php?t=27145
Vedmed
Цитата(aspeed08 @ 9.1.2009, 0:31) *

utorrent.com
придется обновляться. Знаю, что не по душе 1.8.1 - но с магнетками он работает нормально.
(Хотя если не хочется - посмотри в хистори какой-там был последний без магнетов - вроде этот).
FreeM@N
Цитата(Vedmed @ 9.1.2009, 0:58) *
Так, сегодня несколько часов мучал потоки - то, с какой скоростью он проверяет в тестовом проекте было совершенно неприемлемо - невероятно медленно. 2110 секунд (35 минут). mega_shok.gif


А выставить таймаут скажем не "до-упора", а 3-5 секунд?
И http лучше заменить на сокеты с таймаутами, http блин грёбанный действительно всё тока портит sad.gif

Про "обязательно должен быть порт" - если он не указан - ставь восьмидесятый smile.gif
Ostr
сокеты уже используются, вот таймаут изменить это идея smile.gif

а про порт - лучше 2710 - порт ретрекера как-никак smile.gif
aspeed08
Цитата(Vedmed @ 9.1.2009, 0:51) *
utorrent.com
придется обновляться. Знаю, что не по душе 1.8.1 - но с магнетками он работает нормально.
(Хотя если не хочется - посмотри в хистори какой-там был последний без магнетов - вроде этот).


Спасибо за советы, попробую.

UPD: Обновил торрент-клиент всё заработало как надо. Спасибо за помощь smile.gif
Vedmed
Цитата(FreeM@N @ 9.1.2009, 6:01) *
А выставить таймаут скажем не "до-упора", а 3-5 секунд?
И http лучше заменить на сокеты с таймаутами, http блин грёбанный действительно всё тока портит sad.gif

Про "обязательно должен быть порт" - если он не указан - ставь восьмидесятый smile.gif

Как ни странно http работает быстрее - на полногтя (процентов на 10), но все же.
Другое дело он плохо работает с ip-трекерами rolleyes.gif
Надо его копать...
По поводу порта - мы с asachak уже обсудили - есть https (443), и, в принципе есть 8080 - предсказать правильно ли они буду обрабатываться сложно, потому легче пройтись по списку и добавить :mega_shok.gif к десятку ретрекеров.


Цитата(Ostr @ 9.1.2009, 10:01) *
сокеты уже используются, вот таймаут изменить это идея smile.gif

а про порт - лучше 2710 - порт ретрекера как-никак smile.gif

Вот с таймаутом пока чешу репу...
Помимо 2710 есть еще 65534 порта.
FreeM@N
ну по поводу порта можно так сделать:
выцепляешь его из ссылки ретрекера
если его нет то порт будет выбираться по такому условию: port = (protocol=="http") ? mega_shok.gif : 443

ну а если он есть то...тогда и делать ничего не надо, просто вот например приратбей редиректит ели обращаться с указанием порта...
Shift
443 имелось ввиду ели https - SSL хотя XBT SSL вроде не поддерживает
_
Но это на случай установки других скриптов ретрекера
Ostr
код патчера можно еще раз увидеть?)
Vedmed
Цитата(Ostr @ 9.1.2009, 21:25) *
код патчера можно еще раз увидеть?)

Он ужасен, так что лучше не стоит...
А вообще все как обычно - здесь.
Ссылка постоянная, просто добавляю версии по ходу...
Ostr
рефакторинг наше все - собстно им и хотел бы заняться smile.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.