khoadng / Boorusama

A mobile client for booru sites built with Flutter
GNU General Public License v3.0
112 stars 8 forks source link

Support more search operators #412

Open MelvIsntNormal opened 2 months ago

MelvIsntNormal commented 2 months ago

Is your feature request related to a problem? Please describe. The current way of doing disjunction (OR) in searches is to prefix each tag with ~ (for example, ~tag1 ~tag2). This works for Danbooru but is deprecated in favour of an infix operator or (the previous example is equivalent to tag1 or tag2).

Additionally, the prefix ~ operator doesn't work with other boorus, such as Gelbooru, which expects the infix ~ operator surrounded by brackets ({tag1 ~ tag2}, or ( tag1 ~ tag2 ) for older versions of Gelbooru; the spaces by the brackets are important).

Describe the solution you'd like I would like support for these operators in Boorusama

Describe alternatives you've considered A way to use raw search queries would help. Boorusama automatically does things to tags that don't allow for raw queries, such as automatically inserting underscores into spaces or removing duplicate tags. It's probably best to integrate search operators into Boorusama's native UX, but the fact that edge cases will always appear makes it desirable to be able to use raw search queries for boorus that are not currently natively supported.