elgatito / script.elementum.burst

Development of this addon has been stopped!
MIT License
117 stars 117 forks source link

Help says "Use underscores around keywords to require a space/dot, eg. _HEVC_" but included() does not check for dots #393

Closed antonsoroko closed 8 months ago

antonsoroko commented 8 months ago

for additional_filters section we have help https://github.com/elgatito/script.elementum.burst/blob/6ac42e9af8334b9b99ee0ac45cb52b673e3690d5/resources/settings.xml#L389 https://github.com/elgatito/script.elementum.burst/blob/6ac42e9af8334b9b99ee0ac45cb52b673e3690d5/resources/language/messages.pot#L75

then for require we use included() https://github.com/elgatito/script.elementum.burst/blob/6ac42e9af8334b9b99ee0ac45cb52b673e3690d5/burst/filtering.py#L688 and it replaces _ only to `, but not to., so we will not find.HEVC.` in name.

and for accept/block we use included_rx() and it does not replace _ at all, so if user will write _HEVC_ into accept - filter will not work as user expect (we will try to find literally _HEVC_ but not HEVC or .HEVC.).

antonsoroko commented 8 months ago

изначально для всего использовалась included() как я вижу в blame. и там в принципе _ из-за того, что пробелами можно разделять под-слова, типо word1, subword1 subword2, word2. только зачем эти под-слова - не ясно.

для require функция included() вызывается с каждым word по отдельности, и соовт каждый word обязателен (несмотря на any()). хотя можно вызывать со списком всем word и тогда достаточно одного любого word из-за any(). а внутри included() каждый subword обязателен из-за all(). в итоге малопонятен смысл всех этих ухищрений.

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

короче надо или убрать вообще поддержку _ или добавить его полную поддержку (пробел и точка) в обе функции included_rx и included. UPD: или даже лучше использовать везде included_rx (так как он ещё и regexp понимает и делает разумный поиск по границе слова слева и опциональной границе слова справа) и просто поменять help сообщение. (к тому же текущее сообщение не все поймут правильно, да и оно даже на русский неправильно переведено.)