Ich habe Tags, die Emojis enthalten, z. B. new-york-city-🇺🇸.
Bei der Verwendung der Suche und der erweiterten Suche erhalte ich die Themen nicht.
Hier ist ein Beispiel:
Abfrage:
https://urbantech-forum.cornelltech.io/search?expanded=true&q=tags%3Anew-york-city-🇺🇸subway
Und hier ist ein Thema, das zurückgegeben werden sollte:
https://urbantech-forum.cornelltech.io/t/subway-accessibility-info-and-elevator-escalator-status-alerts/139
1 „Gefällt mir“
Nicht sicher, ob das lösbar ist. Was ist deine Meinung @neil ?
j.jaffeux
(Joffrey Jaffeux)
13. Februar 2020 um 09:40
3
AFAIK liegt das nur daran, dass der reguläre Ausdruck, den wir hier haben:
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
keine Emojis zulässt. Wenn dieser auf Emojis abgestimmt wäre, würde es danach funktionieren.
Vielleicht sollten wir in Erwägung ziehen, etwas wie GitHub - ticky/ruby-emoji-regex: 💎 A set of Ruby regular expressions for matching Unicode Emoji symbols. · GitHub zu verwenden, um einen guten regulären Ausdruck für Emojis zu haben.
Was denkst du, @sam ?
1 „Gefällt mir“
sam
(Sam Saffron)
13. Februar 2020 um 10:22
4
Oh je, das fühlt sich an wie ein riesiges Monster, das nur für einen wichtigen Randfall unterstützt werden muss. Haben wir im Tag-Klasse bereits eine validierende Regex?
1 „Gefällt mir“
j.jaffeux
(Joffrey Jaffeux)
13. Februar 2020 um 10:35
5
Ich glaube nicht, dass wir das tun, könnte aber falsch liegen. @neil weiß wahrscheinlich besser Bescheid.
Soweit ich weiß, haben wir nur diese Funktion 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
Die wird hier auf der Client-Seite so ähnlich kopiert:
https://github.com/discourse/discourse/blob/master/app/assets/javascripts/select-kit/mixins/tags.js.es6#L80
Außerdem wäre das wahrscheinlich an anderen Stellen nützlich, da wir das beispielsweise clientseitig generieren: https://github.com/discourse/discourse/blob/master/app/assets/javascripts/pretty-text/emoji.js.es6#L24
2 „Gefällt mir“
neil
(Neil Lalonde)
13. Februar 2020 um 16:25
6
Ich bezweifle, dass wir Tests für Emoji-Tags haben. Vielleicht können wir das in Version 2.5 unterstützen?
4 „Gefällt mir“
Ich sehe, dass die Suche nur ein Thema zurückgibt, wenn nur das Tag verwendet wird (ohne das Schlüsselwort subway) in der Suche (es ist nicht das im OP gepostete Thema):
https://urbantech-forum.cornelltech.io/search?expanded=true&q=tags%3Anew-york-city-🇺🇸
Es funktioniert auch mit anderen Schlüsselwörtern (aber nur für das zuvor zurückgegebene Thema):
https://urbantech-forum.cornelltech.io/search?expanded=true&q=tags%3Anew-york-city-🇺🇸%20personal
Wenn ich keine Tags verwende, wird es korrekt zurückgegeben:
https://urbantech-forum.cornelltech.io/search?expanded=true&q=new-york-city-🇺🇸
Das zuvor zurückgegebene Thema mit dem Tag ist das erste, das bei der Verwendung eines Schlüsselworts mit dem Tag-Namen erscheint, aber der Beitrag ist ein anderer (es könnte jedoch nur daran liegen, dass (vielleicht) Metadaten oder Ähnliches im Beitrag von der Suche erfasst werden und nicht das Tag selbst, aber das kann ich nicht mit Sicherheit sagen).