syncribullet
syncribullet copied to clipboard
Allows for syncing currently watched items from Stremio
- Table of Contents :toc:
- [[#info][Info]]
- [[#goal][Goal]]
- [[#help][Help]]
- [[#warning][WARNING]]
- [[#todo][ToDo]]
- [[#dynamic-sync][Dynamic Sync]]
- [[#import-sync][Import Sync]]
- [[#advanced-sync][Advanced Sync]]
- [[#two-way-sync][Two-Way Sync]]
- [[#catalogs][Catalogs]]
- [[#use-the-addon][Use the Addon]]
- [[#modify-and-build-yourself][Modify and Build yourself]]
- [[#build][Build]]
- [[#start][Start]]
- [[#develop][Develop]]
- [[#known-issues][Known Issues]]
- [[#what-else][What else?]]
- [[#naming][Naming]]
- [[#pull-requests][Pull Requests]]
- [[#stars][Stars]]
- [[#contact][Contact]]
- [[#support][Support]]
- Info Currently the addon synchronizes with following services:
- Anilist
- Simkl
I plan on adding the following in the near future:
- MyAnimelist
- Kitsu
- Trakt
** Goal I want to implement a two way sync over multiple services with Stremio acting as the Sender and the watchlists acting as the Receivers.
** Help If you want to help, the next step is adding mappings between the services to a generalized format.
*** Syncing The idea is that everything is the same everywhere. So a mapping to check what should be synced would look like:
#+begin_src typescript let lastWatched; if (symkl.last_watched_at > stremio.state.lastWatched) { lastWatched = symkl.last_watched_at; } else if (anilist.mediaEntry.last_watched) { lastWatched = anilist.mediaEntry.last_watched; } #+end_src
*** Mapping Information should be mapped as much as possible. After deciding the leader of the sync, we get all possible values and fill up the rest: #+begin_src typescript // If Symkl has lastWatched if (symkl.state === "completed") { stremio.state.flaggedAsWatched = true anilist.state = "COMPLETED" } // If Anilist has lastWatched if (symkl.state === "COMPLETED") { stremio.state.flaggedAsWatched = true symcl.state = "completed" } #+end_src
** WARNING I have tested this as good as possible. Everything published here is currently good to go and shouldn't mess up your library. That said if anything does happen... I can't guarantee anything. Open up an Issue and I may be able to help out.
- ToDo
** Dynamic Sync Dynamic Sync is when an item in the Senders is updated, that it get's reflected on the Receivers.
- [X] Dynamic Sync from Stremio to Anilist
- [ ] Dynamic Sync from Stremio to Kitsu
- [ ] Dynamic Sync from Stremio to MyAnimelist
- [X] Dynamic Sync from Stremio to Simkl
- [-] Dynamic Sync from Stremio to Trakt (Already native Support use that)
** Import Sync Import Sync is theoretically a one-time action where the whole library get's synchronised from the Senders to the Receivers and vice-versa. But the plan is, that this can be run multiple times without wierd issues.
- [ ] Import Sync from Stremio to Anilist
- [ ] Import Sync from Stremio to Kitsu
- [ ] Import Sync from Stremio to MyAnimelist
- [-] Import Sync from Stremio to Simkl (Alternative until tested: [[https://github.com/aliyss/simkl-stremio][simkl-stremio]])
- [-] Import Sync from Stremio to Trakt (Alternative until tested: [[https://github.com/aliyss/trakt-stremio-import][trakt-stremio-import]])
** Advanced Sync Advanced Sync is when the theoretical Receivers share their data between each other, validating and keeping each other in sync.
- [ ] Sync between all Receivers
** Two-Way Sync Of course I'm going for the two-way sync. However this is harder than it actually seems at the moment. Due to not knowing what the prefered sync order is.
** Catalogs Stremio Catalog Support, self explanatory if you are using stremio.
- [X] Anilist
- [ ] Kitsu
- [ ] MyAnimelist
- [X] Simkl
- [ ] Trakt
- Use the Addon
[[https://56bca7d190fc-syncribullet.baby-beamup.club/][Click here!]]
- Modify and Build yourself
** Build
#+begin_src bash npm install npm run build #+end_src
** Start Start the program. Then open the browser at the url mentioned, if this doesn't already happen automatically.
#+begin_src bash npm run start #+end_src
** Develop Instead of Start. Use the following. This will allow you to see the changes live.
#+begin_src bash npm run start:dev #+end_src
-
Known Issues
-
Authtokens are not updated if they expire. I'm working on that.
-
What else?
** Naming I chose the name SyncriBullet, because I want to blend all of the tracking websites together in a synchronised mix. There's not much more to it.
** Pull Requests Feel free to open pull requests if you think there can be improvements made. I will add an eslint check asap.
** Stars A star would be kind, but honestly I use GitHub stars more as bookmarks. So instead bookmark it.
** Contact
-
[[https://discord.gg/zNRf6YF][Stremio Addons Discord Server]]
-
[[https://discord.com/invite/u89XfYn][Simkl Discord Server]]
-
[[https://discord.com/invite/TF428cr][AniList Discord Server]]
-
[[https://discord.com/invite/zAypMTH][Aliyss' Discord Server]]
** Support If you like what I do consider buying me a coffee ;)
[[https://www.buymeacoffee.com/aliyss][Buy Me A Coffee]]