Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

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 изменилось - в дебаге образец

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

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



 AutoChecker___IniParser.zip ( 43.38 килобайт ) : 12
 

Автор: Vedmed 8.1.2009, 14:54

Цитата(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 8.1.2009, 15:24

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

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

Автор: Vedmed 8.1.2009, 15:30

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

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

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

По поводу формата вопрос в другом - в Москве счас 87 ретрекеров - кто с кем - неясно.
Чтоб он проверял "в районе" - тут проблем нет.
Но задумка другая у человека - чтоб сразу все ретрекеры провайдера проверить.

Автор: Shift 8.1.2009, 15:32

Согласен , но тогда надо чтоб он проверял раз в день при включении компа допустим , и по планировщику (если комп всегда работает допустим в 2 ) так как в 3 обновляеться винда

но надо тогда вешать его как сервис чтоль ? и проверять на наличее отзыва от трекерной статистики , тогда разумно сюда будет прикрутить сообщение а том какие ретрекеры не работают и тогда если не у кого не работает можно будет выкидывать smile.gif

Автор: Ostr 8.1.2009, 22:04

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

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

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

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

ЗЫЫ : если каспер заорет - то он войдет в топ самых параноидальных антивирей в мире)))

Автор: Shift 8.1.2009, 22:05

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

Автор: Ostr 8.1.2009, 22:17

пиринг гуляет не каждый день smile.gif
сделать тест раз в неделю (день) и все, в бэкграуде smile.gif

Автор: 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, видимо канал был забит и не прошли обновления - сейчас закачку по торрентам остановил, установил патчер и при его запуске всё было ок. smile.gif

Автор: 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 минут). 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 Так как мы еще не закончили ворошить список ретрекеров из старого в новый - просьба всем внимательно на него смотреть. Это "очень тестовая" версия.
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) *
попробуй любую магнет ссылку запустить и посмотри передаст ли он ее торренту или нет


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

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


Вот, например: http://game-torrent.info/forum/viewtopic.php?t=27145

Автор: Vedmed 9.1.2009, 1:51

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

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 минут). mega_shok.gif


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

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

Автор: Ostr 9.1.2009, 11:01

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

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

Автор: aspeed08 9.1.2009, 11:08

Цитата(Vedmed @ 9.1.2009, 0:51) *
utorrent.com
придется обновляться. Знаю, что не по душе 1.8.1 - но с магнетками он работает нормально.
(Хотя если не хочется - посмотри в хистори какой-там был последний без магнетов - вроде http://www.box.net/shared/a6puv6t3si).


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

UPD: Обновил торрент-клиент всё заработало как надо. Спасибо за помощь smile.gif

Автор: Vedmed 9.1.2009, 13:21

Цитата(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 9.1.2009, 16:26

ну по поводу порта можно так сделать:
выцепляешь его из ссылки ретрекера
если его нет то порт будет выбираться по такому условию: port = (protocol=="http") ? mega_shok.gif : 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

рефакторинг наше все - собстно им и хотел бы заняться smile.gif

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)