Ho tag che contengono emoji, ad esempio new-york-city-🇺🇸. Quando uso la ricerca e la ricerca avanzata, non trovo gli argomenti.
Ecco un esempio:
Query:
https://urbantech-forum.cornelltech.io/search?expanded=true&q=tags%3Anew-york-city-🇺🇸subway
Ecco un argomento che dovrebbe essere restituito:
https://urbantech-forum.cornelltech.io/t/subway-accessibility-info-and-elevator-escalator-status-alerts/139
1 Mi Piace
Non sono sicuro se sia risolvibile, cosa ne pensi @neil ?
j.jaffeux
(Joffrey Jaffeux)
13 Febbraio 2020, 9:40am
3
Per quanto ne so, è solo perché la regex che abbiamo qui:
end
advanced_filter(/\Ain:unseen\z/i) do |posts|
if @guardian.user
posts.joins(
"LEFT JOIN post_timings ON
post_timings.topic_id = posts.topic_id
AND post_timings.post_number = posts.post_number
AND post_timings.user_id = #{ActiveRecord::Base.connection.quote(@guardian.user.id)}
",
).where("post_timings.user_id IS NULL")
end
end
advanced_filter(/\Awith:images\z/i) { |posts| posts.where.not(posts: { image_upload_id: nil }) }
advanced_filter(/\Acategor(?:y|ies):(.+)\z/i) do |posts, terms|
category_ids = []
matches =
terms
non permette gli emoji. Se corrispondesse agli emoji, funzionerebbe dopo.
Potremmo valutare di usare qualcosa come: GitHub - ticky/ruby-emoji-regex: 💎 A set of Ruby regular expressions for matching Unicode Emoji symbols. · GitHub per avere una buona regex per gli emoji.
Cosa ne pensi, @sam ?
1 Mi Piace
sam
(Sam Saffron)
13 Febbraio 2020, 10:22am
4
Oh mio Dio, sembra una bestia enorme da gestire per un caso limite importante. Abbiamo già una regex di validazione nella classe Tag?
1 Mi Piace
j.jaffeux
(Joffrey Jaffeux)
13 Febbraio 2020, 10:35am
5
Non credo che lo facciamo, potrei anche sbagliare, ma @neil probabilmente ne sa di più.
Per quanto ne so, abbiamo solo questa funzione clean_tag:
model.errors.add(:base, msg)
return false
end
end
true
end
def self.validate_one_tag_from_group_per_topic(guardian, model, category, tags = [])
tags_cant_be_used = filter_tags_violating_one_tag_from_group_per_topic(guardian, category, tags)
return true if tags_cant_be_used.blank?
tags_cant_be_used.each do |_, incompatible_tags|
model.errors.add(
:base,
I18n.t(
"tags.limited_to_one_tag_from_group",
tags: incompatible_tags.map(&:name).sort.join(", "),
),
)
end
Che è in qualche modo copiata sul lato client qui:
https://github.com/discourse/discourse/blob/master/app/assets/javascripts/select-kit/mixins/tags.js.es6#L80
Inoltre, questo sarebbe probabilmente utile anche in altri punti, dato che per esempio lo generiamo sul lato client qui: https://github.com/discourse/discourse/blob/master/app/assets/javascripts/pretty-text/emoji.js.es6#L24
2 Mi Piace
neil
(Neil Lalonde)
13 Febbraio 2020, 4:25pm
6
Dubito che abbiamo dei test per i nomi dei tag emoji. Forse possiamo valutare di supportare questa funzionalità nella versione 2.5?
4 Mi Piace
Vedo che la ricerca restituisce un solo argomento quando si utilizza solo il tag (senza la parola chiave subway) nella ricerca (non è l’argomento pubblicato nell’OP):
https://urbantech-forum.cornelltech.io/search?expanded=true&q=tags%3Anew-york-city-🇺🇸
Funziona anche con altre parole chiave (ma solo per quell’argomento restituito in precedenza):
https://urbantech-forum.cornelltech.io/search?expanded=true&q=tags%3Anew-york-city-🇺🇸%20personal
Se non utilizzo i tag, restituisce correttamente:
https://urbantech-forum.cornelltech.io/search?expanded=true&q=new-york-city-🇺🇸
L’argomento restituito in precedenza, con il tag, è il primo restituito usando una parola chiave con il nome del tag, ma il post è un altro (potrebbe essere solo a causa di (forse) metadati o qualcosa di simile nel post che viene intercettato dalla ricerca, e non dal tag stesso, ma non posso esserne certo).