aliyss / syncribullet

Allows for syncing currently watched items from Stremio
https://56bca7d190fc-syncribullet.baby-beamup.club/
25 stars 0 forks source link
anilist anilist-api simkl simkl-api simkl-tv-tracker stremio-addon stremio-addon-sdk

I plan on adding the following in the near future:

** 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.

** Dynamic Sync Dynamic Sync is when an item in the Senders is updated, that it get's reflected on the Receivers.

** 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.

** Advanced Sync Advanced Sync is when the theoretical Receivers share their data between each other, validating and keeping each other in sync.

** 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.

[[https://56bca7d190fc-syncribullet.baby-beamup.club/][Click here!]]

** 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

** 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

** Support If you like what I do consider buying me a coffee ;)

[[https://www.buymeacoffee.com/aliyss][Buy Me A Coffee]]