Animiertes Avatar

|||
-|-|-|
:information_source: | Zusammenfassung | Discourse Animated Avatars fügt die Möglichkeit hinzu, GIF-Avatare hochzuladen, die beim Hovern oder Auswählen in Beiträgen, Benutzerkarten und Profilseiten animiert werden.
:hammer_and_wrench: | Repository-Link | \u003chttps://github.com/discourse/discourse-animated-avatars\u003e
:open_book: | Installationsanleitung | So installieren Sie Plugins in Discourse

Funktionen

Standardmäßig wird die Animation pausiert, wenn sie nicht fokussiert ist. Innerhalb von Themen wird die Animation pausiert, wenn der Beitrag nicht gehovert oder ausgewählt ist.

animated_avatars_always_animate: überschreibt das obige Pausieren und erzwingt, dass Avatare immer animiert werden.
animated_avatars_min_trust_level_to_display beschränkt die Animation von Avataren nach Vertrauensstufe.

Berücksichtigt prefers-reduced-motion in den Barrierefreiheitsoptionen des Browsers: Animationen werden vollständig deaktiviert.

Konfiguration

Dieses Plugin hat eine optionale Abhängigkeit von gifsicle. Dies wird verwendet, um hochgeladene GIF-Bilder auf einen quadratischen Avatar zuzuschneiden, was hilft, Seitenverhältnisse zu beherrschen und Unterschiede in der Größe zwischen statischen und animierten Bildern für einen reibungsloseren Wechsel zu normalisieren. Das Plugin funktioniert auch ohne, aber nicht-quadratische Avatare können gestreckt erscheinen, wenn sie angezeigt werden.

Um dies zu aktivieren, fügen Sie einen Aufruf zum Installationsskript in Ihrer app.yml hinzu. Ein Beispiel dafür, wie der after_code-Hook aussehen wird, ist der folgende:

hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/discourse/discourse-animated-avatars.git
    - exec:
        cd: $home/plugins/discourse-animated-avatars
        raise_on_fail: false
        cmd:
          - $home/plugins/discourse-animated-avatars/scripts/install.sh

Einstellungen

Name Beschreibung
animated avatars min trust level to display Minimale Vertrauensstufe zur Anzeige eines animierten Avatars
animated avatars always animate Avatare immer animieren
22 „Gefällt mir“

Du bist großartig dafür, gibt es eine Möglichkeit, die Animation immer abzuspielen, unabhängig vom Fokus?

3 „Gefällt mir“

Nur noch eine Frage, um Ihnen einen Gefallen zu tun: Wie lege ich die Vertrauensstufe für die Nutzung des Plugins fest?

1 „Gefällt mir“

Die Beschränkung nach Vertrauensstufe wurde nicht implementiert, aber es ist gut zu wissen, dass dies eine gewünschte Funktion ist. Ich werde versuchen, bald etwas Zeit zu finden, um an diesem Teil zu arbeiten.

2 „Gefällt mir“

Ich habe gerade zwei Website-Einstellungen für die angeforderten Funktionen hochgeladen:

animated_avatars_always_animate
und die Begrenzung der Animation nach Vertrauensstufe: animated_avatars_min_trust_level_to_display

4 „Gefällt mir“

Vielen Dank für die stets lebendige Option. Ich hatte ein paar Benutzer, die sich nach der Funktion gesehnt haben

2 „Gefällt mir“

Vielen Dank, dass Sie diese Option veröffentlicht haben. Ich bin Ihnen sehr dankbar und freue mich sehr darüber. Es sind Menschen wie Sie, die die Welt besser machen!

Ich habe also einen Zweifel: Was ist die Standardgröße des GIFs, damit es nicht verzerrt wird? 50x50?

Jede Quadratgröße zwischen 50px und 200px sollte nicht verzerrt werden. Wenn Sie die optionale gifsicle-Abhängigkeit verwenden, kann diese hochgeladene GIFs für Sie in der Größe ändern.

Entschuldigen Sie mein mangelndes Wissen, aber was ist gifsicle?

gifsicle ist eine Software zur Bearbeitung von GIF-Bildern.

Es ist im Konfigurationsabschnitt detailliert beschrieben.

2 „Gefällt mir“

Einige Benutzer melden, dass der Avatar als .png zurückgegeben wird, obwohl der Medientyp gif ist.

Derzeit versuche ich nur zu verstehen, ob es sich um etwas handeln könnte, das mit dem Plugin/Discourse/nginx oder dem Benutzer zusammenhängt.

Ich hatte bereits einen Anwendungsfall, bei dem das Problem darin bestand, dass der Benutzer über RDP auf seine Windows-Maschine zugegriffen hat, aber in einem bestimmten Bericht habe ich einen Benutzer mit Windows 10 Version 22H2 OS Build 19045.2728 und Chrome 111.0.5563.65 (64bit), aber dies ist es, was an den Browser zurückgegeben wird:

Die 108_2.png ist ein Avatar.

Wenn ich dasselbe Thema überprüfe, sehe ich, dass ich dasselbe Bild mit der Erweiterung .gif erhalte und es tatsächlich für mich animiert geladen wird.

Wenn ich jedoch versuche, direkt auf die Datei zuzugreifen, sehe ich, dass zwei Versionen existieren, sowohl eine .png-Version als auch eine .gif-Version

https://netgamers.it/user_avatar/netgamers.it/borzo/100/108_2.gif
https://netgamers.it/user_avatar/netgamers.it/borzo/100/108_2.png

Aus irgendeinem Grund erhält dieser Benutzer nicht die gif-Version, aber er entspricht allen Einstellungen, die ich für das Plugin vorgenommen habe:

1 „Gefällt mir“

Es gibt zwei statische Assets, die zurückgegeben werden – PNG und GIF. Im Modus „Immer animieren“ wird die PNG-Datei beim Laden des Beitrags per Skript durch die GIF-Version ersetzt.

Wenn der Benutzer mit blockiertem JavaScript anzeigt, kann dies die Animation verhindern.

(Ich kann die Animation auch von meiner Seite aus sehen)

2 „Gefällt mir“

Gut bemerkt, ich werde ihn fragen, ob er einen Adblocker oder etwas anderes hat, das die JS der Website beeinträchtigen könnte.

1 „Gefällt mir“

Es scheint, dass Benutzerseiten mit dieser Installation jetzt defekt sind. Ein kurzer Blick zeigt den folgenden Stacktrace:

Uncaught TypeError: r.default.compute ist keine Funktion
    n animated-bound-avatar.js:10
    htmlHelper helpers.js:30
    Ember 2
    l manager.js:746
    tag reference.js:136
    track validator.js:668
animated-bound-avatar.js:10

Leider weiß ich nicht, wann das passiert ist.

Ich habe noch keine eigenen Debugging-Schritte unternommen, aber es muss zwischen diesen beiden Commits kaputtgegangen sein, da ich die Discourse-Änderungen vor dem gestrigen Abend-Update überprüft habe und es vorher nicht kaputt war.

Ich habe auch Probleme mit dem Animated Avatar Plugin – seit dem letzten Upgrade gestern. Wenn das Plugin aktiviert ist, wird die Nachrichten-Seite (/u/username/messages) nicht mehr geladen.

Failed to load resource: the server responded with a status of 429 (Too Many Requests)

animated-bound-avatar.js:10 Uncaught TypeError: r.default.compute is not a function
    at animated-bound-avatar.js:10:1
    at helpers.js:30:1
    at index.js:4731:1
    at Object.getValue (index.js:4734:1)
    at manager.js:746:1
    at reference.js:136:1
    at e.track (validator.js:668:1)
    at f (reference.js:135:1)
    at Object.evaluate (runtime.js:3269:1)
    at Object.evaluate (runtime.js:1052:1)
    at It.evaluateSyscall (runtime.js:4263:1)
    at It.evaluateInner (runtime.js:4234:1)
    at It.evaluateOuter (runtime.js:4227:1)
    at Wt.next (runtime.js:5058:1)
    at Wt._execute (runtime.js:5045:1)
    at Wt.execute (runtime.js:5038:1)
    at zt.handleException (runtime.js:4372:1)
    at Ut.handleException (runtime.js:4580:1)
    at Ft.throw (runtime.js:4319:1)
    at $e.evaluate (runtime.js:2091:1)
    at Ft._execute (runtime.js:4306:1)
    at Ft.execute (runtime.js:4291:1)
    at Kt.rerender (runtime.js:4606:1)
    at wr.render (index.js:6751:1)
    at index.js:7013:1
    at Mt (runtime.js:4139:1)
    at Tr._renderRoots (index.js:6996:1)
    at Tr._renderRootsTransaction (index.js:7039:1)
    at Tr._revalidate (index.js:7072:1)
    at p.invoke (queue.ts:201:14)
    at p.flush (queue.ts:98:13)
    at h.flush (deferred-action-queues.ts:75:19)
    at $._end (index.ts:616:32)
    at $.end (index.ts:298:10)
    at $._run (index.ts:667:14)
    at $.run (index.ts:339:17)
    at d (index.js:109:1)
    at u.success (ajax.js:105:1)
    at l (jquery.js:3213:1)
    at Object.fireWith [as resolveWith] (jquery.js:3343:1)
    at E (jquery.js:9617:1)
    at XMLHttpRequest.<anonymous> (jquery.js:9878:1)

FIX: Call boundAvatar() directly (#17) · discourse/discourse-animated-avatars@f8ff4a7 · GitHub oder 3.1.0.beta7 hat es für mich behoben, danke. :slight_smile:

Das scheint in Brave oder Opera nicht zu funktionieren, obwohl es in Firefox funktioniert.

Brave und Opera melden beide ein .png-Bild und ändern sich nicht zu .gif.

Verknüpfung eines gemeldeten Fehlers:

6 „Gefällt mir“

Profilseiten sind bei mir auch komplett kaputt

Uncaught TypeError: Cannot destructure property 'hasBlock' of 'e' as it is undefined.
    at b.getConnectors (plugin-outlet.js:87:19)
    at B._join (index.ts:646:21)
    at B.join (index.ts:362:17)
    at p (index.js:156:1)
    at index.js:257:1
    at o.getValue (install-function-helper-manager.js:42:12)
    at manager.js:746:1
    at reference.js:131:1
    at e.track (validator.js:657:1)
    at d (reference.js:130:1)
    at runtime.js:1648:1
    at reference.js:131:1
    at e.track (validator.js:657:1)
    at d (reference.js:130:1)
    at index.js:5579:1
    at reference.js:131:1
    at e.track (validator.js:657:1)
    at d (reference.js:130:1)
    at index.js:5579:1
    at reference.js:131:1
    at e.track (validator.js:657:1)
    at d (reference.js:130:1)
    at reference.js:306:1
    at reference.js:131:1
    at e.track (validator.js:657:1)
    at d (reference.js:130:1)
    at Object.evaluate (runtime.js:3437:1)
    at Object.evaluate (runtime.js:1052:1)
    at It.evaluateSyscall (runtime.js:4258:1)
    at It.evaluateInner (runtime.js:4229:1)
    at It.evaluateOuter (runtime.js:4222:1)
    at Wt.next (runtime.js:5053:1)
    at Wt._execute (runtime.js:5040:1)
    at Wt.execute (runtime.js:5033:1)
    at $t.handleException (runtime.js:4367:1)
    at qt.handleException (runtime.js:4575:1)
    at Dt.throw (runtime.js:4314:1)
    at Be.evaluate (runtime.js:2088:1)
    at Dt._execute (runtime.js:4301:1)
    at Dt.execute (runtime.js:4286:1)
    at Ht.rerender (runtime.js:4601:1)
    at wr.render (index.js:6742:1)
    at index.js:7004:1
    at Mt (runtime.js:4134:1)
    at Cr._renderRoots (index.js:6987:1)
    at Cr._renderRootsTransaction (index.js:7030:1)
    at Cr._revalidate (index.js:7063:1)
    at p.invoke (queue.ts:201:14)
    at p.flush (queue.ts:98:13)
    at h.flush (deferred-action-queues.ts:75:19)
    at B._end (index.ts:616:32)
    at B.end (index.ts:298:10)
    at B._run (index.ts:667:14)
    at B.run (index.ts:339:17)
    at d (index.js:108:1)
    at t.success (ajax.js:115:7)
    at l (jquery.js:3213:1)
    at Object.fireWith [as resolveWith] (jquery.js:3343:1)
    at x (jquery.js:9617:1)
    at XMLHttpRequest.<anonymous> (jquery.js:9878:1)

Könnte das eine Lösung sein?

2 „Gefällt mir“