Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Реализация CustomBlockShare в формате xml #1110

Closed
pavel-pimenov opened this issue Aug 24, 2015 · 18 comments
Closed

Реализация CustomBlockShare в формате xml #1110

pavel-pimenov opened this issue Aug 24, 2015 · 18 comments

Comments

@pavel-pimenov
Copy link
Owner

From Pavel.Pimenov@gmail.com on July 09, 2013 06:15:47

CustomBlockShare.ini в виде одной строки wildcard
предлагаю заменить на более оптимальный вариант со структурой

exclude_wildcard = "~uTorrentPartFile_" exclude_ext = "jc!,ob!,dmf,mta,......." /> 1. Алгоритм регулярных выражений предлагаю забрать тут со ссылкой на источник https://bitbucket.org/3F/flightsdc/commits/4c5351956752c888123bcdaf9c17024b6f820854 2. Все три тэга загружать и парсить один раз раскидываю в 3 vector-а 2. Основное кол-во исключений у нас по расширению сравнивать этот массив нужно как и раньше через == а не через wildcard как сейчас (при большом кол-ве файлов это не оптимально) 3. Регулярные выражение в xml для нажежности лучше хранить в виде массива а не через токен.

Original issue: http://code.google.com/p/flylinkdc/issues/detail?id=1073

@pavel-pimenov
Copy link
Owner Author

From a.rain...@gmail.com on July 09, 2013 05:24:30

+1
и красиво обернуть двумя методами:
isBadFileName и isBadFileExt
больше делать не стоит, что бы не светить наружу реализацию. Т.е. уже порезанный на куски и распарсенный вилдкард, полное совпадение имени, и регэксп, проверять в isBadFileName, а расширения в isBadFileExt.

Расширения и полные имена файлов стоит положить в контейнер с быстрым поиском. Поскольку элементов мало будет достаточно set, но в будущем можно и unordered_set вписать.

Пока предлагаю "быструю оптимизацию" и вытащить разрезание вилдкарда на куски из цикла в метод загрузки, этот код в последствии всё равно пригодится, так что работа не будет проведена в пустую, а в сером апе уйдут тормоза.

Cc: Pavel.Pimenov@gmail.com a.rain...@gmail.com
Labels: -Type-Defect Type-Review Performance

@pavel-pimenov
Copy link
Owner Author

From tret2...@gmail.com on July 10, 2013 08:07:49

r14461 "Быструю оптимизацию" сделал

@pavel-pimenov
Copy link
Owner Author

From a.rain...@gmail.com on July 10, 2013 10:00:21

r14463 в "быстрой оптимизации" заюзал семантику перемещения.

@pavel-pimenov
Copy link
Owner Author

From Pavel.Pimenov@gmail.com on July 10, 2013 10:02:21

Зачем?
оно всеравно будет переписано все.
лучше почини баг в списке файл-листа :)

@pavel-pimenov
Copy link
Owner Author

From a.rain...@gmail.com on July 10, 2013 10:40:17

лучше почини баг в списке файл-листа :)
ишья, описание, не? :)

@pavel-pimenov
Copy link
Owner Author

From a.rain...@gmail.com on July 10, 2013 10:42:23

p.s: затем, что бы писали сразу оптимально.

@pavel-pimenov
Copy link
Owner Author

From Pavel.Pimenov@gmail.com on July 10, 2013 10:44:20

Вот тут сломал - тут и отписал баги https://code.google.com/p/flylinkdc/source/detail?r=14455

@pavel-pimenov
Copy link
Owner Author

From tret2...@gmail.com on July 11, 2013 23:28:19

А что если всё это и CustomCompressExt.ini затолкать в flylinkdc-config-r5xx.xml , который грузится при старте? Сам же flylinkdc-config-r5xx.xml затолкать в репку внешней ссылкой и в ресурсы программы включить. Читать его, если инет недоступен, не сохраняя на диск.

@pavel-pimenov
Copy link
Owner Author

From Pavel.Pimenov@gmail.com on July 11, 2013 23:36:43

Можно, размер тут не очень большой получается и с сервера будет один файл тягаться - быстрее

@pavel-pimenov
Copy link
Owner Author

From Pavel.Pimenov@gmail.com on July 11, 2013 23:38:54

Посмотрел CustomCompressExt.ini
там с комментами, если сувать в xml
то наверно достаточно одних расширений через сепаратор.
А сам файл CustomCompressExt.ini оставить как основу в репке без автобновления.
ок?

@pavel-pimenov
Copy link
Owner Author

From Pavel.Pimenov@gmail.com on July 11, 2013 23:40:54

Может даже написать консольную прогу или скрипт конвертации CustomCompressExt.ini в строку для токенайзера

.3gp Мультимедийный файл беспроводных сетей
.avi Контейнер для видео/аудио потока данных
.divx Movie Encoded with DivX-codec
...

Преобразуется в

3gp,avi,divx,...

чтобы ничего не терять.

@pavel-pimenov
Copy link
Owner Author

From tret2...@gmail.com on July 11, 2013 23:44:45

Почти так, сами файлики CustomCompressExt.ini и CustomBlockShare.ini можно будет вообще удалить, если мы в ресурсы запихаем flylinkdc-config-r5xx.xml
У тебя сейчас в CFlyServerConfig хардкодом заделаны расширения для медиаинфо и DHT сервера в initOfflineConfig()
Если добавить в ресурсы файл flylinkdc-config-r5xx.xml то можно от этого всего избавиться. При изменении и добавлении инфы в flylinkdc-config-r5xx.xml в новых версиях не будет необходимости этот хардкод править.

@pavel-pimenov
Copy link
Owner Author

From Pavel.Pimenov@gmail.com on July 18, 2013 12:52:19

Комменты к коммиту https://code.google.com/p/flylinkdc/source/detail?r=14600

@pavel-pimenov
Copy link
Owner Author

From a.rain...@gmail.com on July 22, 2013 15:15:11

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

Status: Started

@pavel-pimenov
Copy link
Owner Author

From Pavel.Pimenov@gmail.com on July 22, 2013 18:52:04

А что ты тут нажал started
Файл уже читается из ресурса если не доступна сетка
#ifdef USE_LOCAL_FILE
const string l_url_config_file = "file://C:/vc10/etc/flylinkdc-config-r5xx.xml"; //TODO: please fix me.
#else
const string l_url_config_file = " http://www.fly-server.ru/etc/flylinkdc-config-r5xx.xml"; #endif
l_dht_server_log.step("Download:" + l_url_config_file);
if (Util::getDataFromInet(Text::toT(g_user_agent).c_str(), 4096, l_url_config_file, l_data, 0) == 0)
{
l_dht_server_log.step("Error download! Config will be loaded from internal resources");
if (Util::GetTextResource(IDR_FLY_SERVER_CONFIG, l_res_data)) //
l_data = l_res_data;
}

@pavel-pimenov
Copy link
Owner Author

From tret2...@gmail.com on July 23, 2013 21:58:43

ставим fixed ?

@pavel-pimenov
Copy link
Owner Author

From Pavel.Pimenov@gmail.com on July 23, 2013 22:11:59

Думаю, да.

@pavel-pimenov
Copy link
Owner Author

From tret2...@gmail.com on July 23, 2013 22:13:14

Status: Fixed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant