dieserRobin / canireact-extension

Browser Extension which displays reaction guidelines for a video or channel to streamers.
https://canireact.com
Creative Commons Zero v1.0 Universal
37 stars 1 forks source link

Feature/api cache #4

Closed MrTob closed 2 months ago

MrTob commented 2 months ago

First Pull Request 🎉 😁

  1. Cache Logik hinzugefügt um die API calls zu reduzieren.
  2. URL zum Repo gefixt
  3. CSS-Prop für bessere lesbarkeit geändert.
dieserRobin commented 2 months ago

Danke für deine Contribution ❤️

Beim Caching könnte es für einen Fall zu Fehler führen: Kanäle, auf die man erst nach x Stunden reagieren darf, in dem Fall müsste man die Cachingdauer anpassen, oder ich gebe in der Response noch die Upload-Zeit zurück 🤔

Kontext: Der Server checkt aktuell, wann das Video hochgeladen wurde und schon genug Zeit für eine Reaction vergangen ist.

MurmeltierS commented 2 months ago

Kontext: Der Server checkt aktuell, wann das Video hochgeladen wurde und schon genug Zeit für eine Reaction vergangen ist.

wäre es ggf. sinnvoll stattdessen die Rules welche an den Client gesendet werden als timestamps o.ä. zu modellieren? gerade im "thumbnail scanning" ballern da ja dann doch schon einige requests durch.

MurmeltierS commented 2 months ago

wäre es ggf. sinnvoll stattdessen die Rules welche an den Client gesendet werden als timestamps o.ä. zu modellieren?

habe mal in 5 Minuten zusammengeschmissen, wie ich mir soetwas vorstellen könnte: #5 ob es das am Ende Wert ist gilt es zu entscheiden.

dieserRobin commented 2 months ago

wäre es ggf. sinnvoll stattdessen die Rules welche an den Client gesendet werden als timestamps o.ä. zu modellieren?

habe mal in 5 Minuten zusammengeschmissen, wie ich mir soetwas vorstellen könnte: #5 ob es das am Ende Wert ist gilt es zu entscheiden.

Interessanter Ansatz, glaube für jetzt wärs einfacher für die cached guidelines zu prüfen, ob die Zeit mittlerweile vergangen ist. Auf lange Zeit können wir aber nochmal darüber nachdenken es so zu lösen wie du es vorgeschlagen hast @MurmeltierS.

Ich habe das Video Upload Date jetzt zur Response hinzugefügt, bsp: GET https://api.canireact.com/v1/video/Dr0P0XWbeSQ?easy_request=false&channel_url=https://www.youtube.com/@kuchentv

{
  "id": "Dr0P0XWbeSQ",
  "channel_id": "UCr78AIw8O_HGs2jMUAGEp_g",
  "rules": {
    "rules_id": 134,
    "stream": {
      "stream_reactions_allowed": true,
      "stream_reactions_generally_allowed": true, <- allowed_after_hours wird hier ignoriert
      "credit_stream_chat": false,
      "sponsor_skips_allowed": true,
      "stream_reaction_allowed_after_hours": 0
    },
    "video": {
      "video_reactions_allowed": true,
      "video_reactions_generally_allowed": true, <- allowed_after_hours wird hier ignoriert
      "monetization_allowed": true,
      "sponsor_cut_allowed": null,
      "reaction_video_splittling_allowed": false,
      "video_reaction_allowed_after_hours": 24,
      "credit_video_description": true,
      "reaction_video_includes_title": false
    }
  },
  "info_text": null,
  "video": {
    "uploaded_at": "2024-06-02T16:00:10.000Z"
  },
  "ms": 874,
  "cached_at": 1717444103994,
  "source": "canireact"
}
dieserRobin commented 2 months ago

@dieserRobin klingt sinnvoll, also Cache invalidaten wenn upload time + *_after_hour < now und der Wert noch false ist?

Wir müssen ihn eigentlich nicht mal invalidaten, würde vorm Einfügen der Reaction Info nochmal prüfen ob die Zeit schon abgelaufen ist - kostet nicht viel Performance und spart uns trotzdem die Server Anfrage.

MurmeltierS commented 2 months ago

@dieserRobin klingt sinnvoll, also Cache invalidaten wenn upload time + *_after_hour < now und der Wert noch false ist?

Wir müssen ihn eigentlich nicht mal invalidaten, würde vorm Einfügen der Reaction Info nochmal prüfen ob die Zeit schon abgelaufen ist - kostet nicht viel Performance und spart uns trotzdem die Server Anfrage.

true

@MrTob hast du vor das entsprechend anzupassen?

dieserRobin commented 2 months ago

@MrTob hast du vor das entsprechend anzupassen?

Das Caching können wir eigentlich komplett so lassen wie es ist, ich adde kurz die Prüfung zu addReactionInfo und zu addThumbnailReactionInfo, dann können wir den Pull Request eigentlich wie er ist mergen.