Commit graph

95 commits

Author SHA1 Message Date
Philipp Wolfer
46e6a667c8
Added constants for app name and version, use custom user-agent 2023-11-24 08:58:31 +01:00
Philipp Wolfer
f6b4ea4a46
README: Some preliminary installation instructions 2023-11-24 08:30:32 +01:00
Philipp Wolfer
3ce0851f45
Publish module redirect on https://go.uploadedlobster.com/scotty 2023-11-24 08:16:29 +01:00
Philipp Wolfer
e1c9fb6076
Move the JSPF playlist code into public module 2023-11-24 08:04:56 +01:00
Philipp Wolfer
0f5cb49b4c
Refactored common rate limit code into separate module 2023-11-24 01:24:54 +01:00
Philipp Wolfer
857661ebf9
Restructured code, moved all modules into internal
For now all modules are considered internal. This might change later
2023-11-24 01:24:54 +01:00
Philipp Wolfer
f94e0f1e85
Basic README 2023-11-24 01:24:53 +01:00
Philipp Wolfer
fb285930c0
Avoid double closing of export progress channel 2023-11-23 22:45:50 +01:00
Philipp Wolfer
e8fdfb95a6
ListenBrainz submit listens 2023-11-23 22:20:40 +01:00
Philipp Wolfer
d55114ed3f
Extended Spotify test 2023-11-23 17:34:36 +01:00
Philipp Wolfer
1a06168039
Deezer export listens 2023-11-23 17:34:11 +01:00
Philipp Wolfer
3a364b6ae4
Deezer authentication and loves export 2023-11-23 17:07:56 +01:00
Philipp Wolfer
f447a259d4
OAuth2Strategy interface to abstract the details of the login flow
This allows implementing clients the deviate from the standard OAuth2 flow
2023-11-23 14:41:31 +01:00
Philipp Wolfer
780af98e1e
Spotify: consider rate limit HTTP headers 2023-11-23 10:49:40 +01:00
Philipp Wolfer
68b2e649f0
JSPF: Include full LB additional info in metadata 2023-11-23 09:59:38 +01:00
Philipp Wolfer
36cc41d05d
Uppercase acronyms (ISRC / JSPF) 2023-11-23 08:27:37 +01:00
Philipp Wolfer
409acccebe
JSPF: Listen import 2023-11-22 18:11:21 +01:00
Philipp Wolfer
cac88f316b
Reduced redundancy in model conversions and consistent naming 2023-11-22 17:53:09 +01:00
Philipp Wolfer
e29d8e2a63
Custom OAuth2 TokenSource to persist refreshed tokens in database 2023-11-22 17:24:30 +01:00
Philipp Wolfer
4a9f26d9db
Improved progress report for Spotify loves 2023-11-22 12:39:41 +01:00
Philipp Wolfer
0e3061e837
Support disc numbers 2023-11-22 12:05:00 +01:00
Philipp Wolfer
d810fc9cac
Ensure exporters finish the progress 2023-11-22 11:55:31 +01:00
Philipp Wolfer
2e6319d296
Spotify: Loves export 2023-11-22 11:52:28 +01:00
Philipp Wolfer
ed9debc127
Spotify: Implemented API request and tests for user tracks 2023-11-22 10:24:33 +01:00
Philipp Wolfer
d0739aad0f
Use config from OAuth2Authenticator for auth command 2023-11-22 08:41:18 +01:00
Philipp Wolfer
cf3747bde2
Fixed oauth token refresh for source 2023-11-22 08:21:43 +01:00
Philipp Wolfer
117014a977
Change project license to GPLv3
Individual files, mainly the models and the HTTP clients stay under MIT
2023-11-22 08:05:23 +01:00
Philipp Wolfer
08876a2d70
Fixed import count updates 2023-11-22 07:37:44 +01:00
Philipp Wolfer
56eae67292
scrobblerlog: implemented append mode 2023-11-22 07:36:48 +01:00
Philipp Wolfer
1af484e0f6
Fixed storing last import timestamp 2023-11-21 18:14:11 +01:00
Philipp Wolfer
fa7732c538
Autenticate OAuth backends 2023-11-21 17:51:13 +01:00
Philipp Wolfer
94704f9cd0
WIP: Authenticate 2023-11-21 16:43:40 +01:00
Philipp Wolfer
3d3685d8bc
Initial implementation for Spotify listens export 2023-11-21 16:42:59 +01:00
Philipp Wolfer
3ded679d80
Maloja, ListenBrainz: Complete progress on error 2023-11-21 08:52:25 +01:00
Philipp Wolfer
74f2a3cef7
Use port 2369 as standard port for OAuth callbacks 2023-11-21 08:52:25 +01:00
Philipp Wolfer
c13c9175e3
Renamed ImportBackend methods to StartImport / FinishImport 2023-11-20 07:43:54 +01:00
Philipp Wolfer
14d944c7ad
Basic "scotty auth" implementation 2023-11-19 23:56:31 +01:00
Philipp Wolfer
8b227cb514
Better naming, distingiush between "service" and "backend" 2023-11-19 22:54:42 +01:00
Philipp Wolfer
6e330daf06
Implemented progressbar for export/import 2023-11-19 13:56:06 +01:00
Philipp Wolfer
ab04eb1123
Updated all import/export interfaces 2023-11-17 07:41:47 +01:00
Philipp Wolfer
729a3d0ed0
Add ImportResult.UpdateTimestamp method 2023-11-17 07:41:47 +01:00
Philipp Wolfer
298697dcfc
Run exporter in goroutine
Use channel to pass data from exporter to importer
2023-11-17 07:41:46 +01:00
Philipp Wolfer
1ba165a631
Ignore Lapce editor files and configure go workspace 2023-11-17 07:40:25 +01:00
Philipp Wolfer
3a76ec7988
Added basic documentation of backend interfaces 2023-11-15 10:06:35 +01:00
Philipp Wolfer
bae81d9b08
If import fails report the last timestamp 2023-11-15 09:20:52 +01:00
Philipp Wolfer
4e9f50b6b6
More resilient HTTP requests
Fixed rate limit check for ListenBrainz and Funkwhale. Also retry always
on server side errors.
2023-11-15 09:20:35 +01:00
Philipp Wolfer
240351dc3e
Example config file 2023-11-15 07:56:30 +01:00
Philipp Wolfer
36f8f3e311
Use nested map for service configs 2023-11-15 07:35:28 +01:00
Philipp Wolfer
c8146355c1
Database support to store the last processed timestamp 2023-11-14 17:19:01 +01:00
Philipp Wolfer
503449c43d
Removed unused CLI flag added by default implementation 2023-11-14 15:14:54 +01:00