Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v3.0.0 #753

Merged
merged 258 commits into from
Jan 10, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
258 commits
Select commit Hold shift + click to select a range
b200233
Scanner: get config dir env var
Arthi-chaud Aug 15, 2024
4f76203
Scanner: get data dir env var
Arthi-chaud Aug 15, 2024
88e8359
Scanner: Parse settings.json
Arthi-chaud Aug 15, 2024
967328f
Scanner: Test Parsing of User Settings
Arthi-chaud Aug 15, 2024
b873869
Scanner: Better validation error messages for settings
Arthi-chaud Aug 15, 2024
65341eb
Scanner: Cohesive variable namings
Arthi-chaud Aug 15, 2024
f0ced36
CI: Scanner: Fix coverage integration on sonarcloud
Arthi-chaud Aug 15, 2024
5d68625
Scanner: Metadata model + validator
Arthi-chaud Aug 15, 2024
6c643b6
Scanner: Use error type instead of plain strings
Arthi-chaud Aug 15, 2024
571cde7
Scanner: Path Metadata Parsing: Setup for regexes
Arthi-chaud Aug 15, 2024
879f3a8
Scanner: Parse Metadata from path
Arthi-chaud Aug 15, 2024
ab20450
Scanner: Use Golang Regex + Test path metadata
Arthi-chaud Aug 16, 2024
05b6909
Scanner: Merge Metadata
Arthi-chaud Aug 16, 2024
aa009b4
Scanner: Parse embedded data, core parsing function + tests
Arthi-chaud Aug 16, 2024
6eb0055
Scanner: Test Metadata Parser
Arthi-chaud Aug 16, 2024
5ff9ad6
Scanner: Test Metadata Merging + sanitization
Arthi-chaud Aug 16, 2024
f45d4df
Scanner: Know where to look for an illustration
Arthi-chaud Aug 18, 2024
ba9fc80
Scanner: Add API Key to config
Arthi-chaud Aug 19, 2024
31831e2
Server: Api Key Service + Guard
Arthi-chaud Aug 19, 2024
ae44cd5
Scanner: Check if requesting user is admin
Arthi-chaud Aug 20, 2024
27b2b9d
Scanner: Endpoints: 401 if user is not admin
Arthi-chaud Aug 20, 2024
527ca4d
Scanner: Add Tasks to context
Arthi-chaud Aug 21, 2024
73ba1ca
wip
Arthi-chaud Aug 23, 2024
75788e4
Server: Merge
Arthi-chaud Aug 23, 2024
3ebac55
Server: Add Microservice to Role guards
Arthi-chaud Aug 23, 2024
aae1067
Server: Rework handling of access control when multiple methods possi…
Arthi-chaud Aug 24, 2024
7c9d78e
Scanner: Setup Project + Echo server
Arthi-chaud Aug 14, 2024
522330d
Scanner: Add to docker-compose + nginx reverse proxy
Arthi-chaud Aug 14, 2024
16d62a7
Scanner: CI + coverage Report
Arthi-chaud Aug 14, 2024
76c1ecd
Scanner: func to get video thumbnail + format
Arthi-chaud Aug 14, 2024
30def99
Scanner: Connect to API
Arthi-chaud Aug 14, 2024
ffe576d
CI: Add Static analysis to Scanner
Arthi-chaud Aug 14, 2024
e97e811
CI: Scanner: Install ffmpeg only for tests
Arthi-chaud Aug 14, 2024
1beeeb1
Scanner: Dockerfile: avoid using root
Arthi-chaud Aug 14, 2024
ee40992
Scanner: get config dir env var
Arthi-chaud Aug 15, 2024
ad3fbd7
Scanner: get data dir env var
Arthi-chaud Aug 15, 2024
2a541cb
Scanner: Parse settings.json
Arthi-chaud Aug 15, 2024
bb430ae
Scanner: Test Parsing of User Settings
Arthi-chaud Aug 15, 2024
762b311
Scanner: Better validation error messages for settings
Arthi-chaud Aug 15, 2024
b04cbfa
Scanner: Cohesive variable namings
Arthi-chaud Aug 15, 2024
858b9e0
CI: Scanner: Fix coverage integration on sonarcloud
Arthi-chaud Aug 15, 2024
155cb9e
Scanner: Metadata model + validator
Arthi-chaud Aug 15, 2024
dca04b2
Scanner: Use error type instead of plain strings
Arthi-chaud Aug 15, 2024
0fac03a
Scanner: Path Metadata Parsing: Setup for regexes
Arthi-chaud Aug 15, 2024
f69ba8a
Scanner: Parse Metadata from path
Arthi-chaud Aug 15, 2024
60eb19e
Scanner: Use Golang Regex + Test path metadata
Arthi-chaud Aug 16, 2024
28fdc01
Scanner: Merge Metadata
Arthi-chaud Aug 16, 2024
2e438f1
Scanner: Parse embedded data, core parsing function + tests
Arthi-chaud Aug 16, 2024
ed03dca
Scanner: Test Metadata Parser
Arthi-chaud Aug 16, 2024
2aa6eb8
Scanner: Test Metadata Merging + sanitization
Arthi-chaud Aug 16, 2024
f3e56f3
Scanner: Know where to look for an illustration
Arthi-chaud Aug 18, 2024
e5b9c2e
Scanner: Add API Key to config
Arthi-chaud Aug 19, 2024
4f3d542
Server: Api Key Service + Guard
Arthi-chaud Aug 19, 2024
4d58545
Scanner: Check if requesting user is admin
Arthi-chaud Aug 20, 2024
b3f7f22
Scanner: Endpoints: 401 if user is not admin
Arthi-chaud Aug 20, 2024
ea5b8d4
Scanner: Merge
Arthi-chaud Aug 28, 2024
fed101e
Scanner: Setup Task Queue
Arthi-chaud Aug 28, 2024
4ab088f
Server: Fix JWT Guard
Arthi-chaud Aug 28, 2024
6886c9d
Server: File API: Add route to get many files
Arthi-chaud Aug 31, 2024
9cf58eb
Scanner: Scan Task: Filter unregistered paths
Arthi-chaud Aug 31, 2024
4787a20
Scanner: Scan: Parse metadata by chunks
Arthi-chaud Aug 31, 2024
c0a2527
Server: Setup DTO for pushing Metadata
Arthi-chaud Aug 31, 2024
de5bca0
Scanner: Metadata Parsing: Add Path, checksum and registration date t…
Arthi-chaud Sep 1, 2024
005006b
Server: Metadata Controller: Test error handling
Arthi-chaud Sep 1, 2024
76dffbd
Server: Test Metadata Creation result
Arthi-chaud Sep 1, 2024
17089b2
Server: Metadata: Save Illustration
Arthi-chaud Sep 1, 2024
11c7be6
Server: Metadata Controller: Save Illustration
Arthi-chaud Sep 1, 2024
e4cd30a
Scanner: API: Push Metadata
Arthi-chaud Sep 2, 2024
cd8a118
Scanner: Parser: Fix Compilation/Album Artist Handling
Arthi-chaud Sep 2, 2024
8bcc0fb
Scanner: checksum: fix
Arthi-chaud Sep 2, 2024
5f7ae2e
Scanner: Hide ffmpeg log + remove json key from metadata object
Arthi-chaud Sep 2, 2024
4ae9de6
Server: Metadata DTO: Fix parsing of dates and booleans
Arthi-chaud Sep 2, 2024
90882b8
Server: Endpoint to POST Thumbnail
Arthi-chaud Sep 2, 2024
88a7934
Server: Avoid crash on clean
Arthi-chaud Sep 2, 2024
7f65834
Scanner: Format
Arthi-chaud Sep 2, 2024
0c76570
Scanner: Add API endpoint to scan a single library
Arthi-chaud Sep 3, 2024
00ca276
Server: Library Controller: Add permissions for microservice
Arthi-chaud Sep 3, 2024
96c7e6a
Scanner: Extract Thumbnail + Fix type detection for OGG
Arthi-chaud Sep 3, 2024
1b84209
Server: Metadata: Fix file path parsing
Arthi-chaud Sep 3, 2024
2209591
Server: Metadata: Fix validation of compilation tag
Arthi-chaud Sep 3, 2024
a530fd0
Server: Illustration Registration: Prevent order of registration from…
Arthi-chaud Sep 4, 2024
e96c86b
Merge pull request #744 from Arthi-chaud/scanner/push-metadata
Arthi-chaud Sep 4, 2024
6d785d4
Server: Endpoint to delete files
Arthi-chaud Sep 4, 2024
f22e397
Scanner: Clean Files
Arthi-chaud Sep 4, 2024
992d022
Server: Format
Arthi-chaud Sep 4, 2024
7faa482
Merge pull request #745 from Arthi-chaud/scanner/clean
Arthi-chaud Sep 4, 2024
2124d23
Scanner: Illustration submodule
Arthi-chaud Sep 4, 2024
d564252
Server: Rework route for Illustration Registration
Arthi-chaud Sep 4, 2024
0723e0e
Scanner: Use new route to post cover/thumbnail
Arthi-chaud Sep 4, 2024
866041b
Merge pull request #746 from Arthi-chaud/scanner/parallel-illustratio…
Arthi-chaud Sep 5, 2024
5042cca
Docs: Mention that we use Golang-flavored regular expressions
Arthi-chaud Sep 6, 2024
85ee9ba
Server: File Controller: Select files from album, release, song and t…
Arthi-chaud Sep 5, 2024
59d49e1
Server: Remove ununsed dep in metadata module
Arthi-chaud Sep 5, 2024
52e3130
Server: Metadata Controller: Update Metadata
Arthi-chaud Sep 5, 2024
18e0b0d
Scanner: Setup for Metadata Refresh Task
Arthi-chaud Sep 5, 2024
c4b79f3
Scanner: API Request to get files w/ selector
Arthi-chaud Sep 5, 2024
e861157
Scanner: Refresh Metadata when file changes
Arthi-chaud Sep 6, 2024
62087ae
Server: Discogs does not provide description anymore
Arthi-chaud Sep 6, 2024
777e68c
Merge pull request #747 from Arthi-chaud/scanner/refresh-metadata
Arthi-chaud Sep 6, 2024
7c41127
Rename checksum (#749)
Arthi-chaud Sep 6, 2024
db52907
Server: Housekeeping service
Arthi-chaud Sep 6, 2024
3ad0cc9
Service: Parser Module, Registration Module + start removal of Task s…
Arthi-chaud Sep 6, 2024
2e1337d
Server: Move Illustration Registration to Registration Service + remo…
Arthi-chaud Sep 6, 2024
5e5cfd8
Server: Remove use of Redis
Arthi-chaud Sep 7, 2024
4bdbf63
Docker Compose: Cache front + server deps in dev + Add scanner to prod
Arthi-chaud Sep 7, 2024
25d5e19
Server: Format + remove redis container in test setup
Arthi-chaud Sep 7, 2024
4d47ba6
Server: Change Response on task start to match scanner's response
Arthi-chaud Sep 7, 2024
502f01f
Front: Use Scanner's Endpoints
Arthi-chaud Sep 7, 2024
f68dc3a
Scanner: Dockerfile: add wget for healthcheck
Arthi-chaud Sep 7, 2024
20d7f69
Server: Remove deps to glob
Arthi-chaud Sep 7, 2024
e2a9ea9
Docker Compose: Use PUBLIC_URL env var + connect front to scanner
Arthi-chaud Sep 7, 2024
1693835
Merge pull request #751 from Arthi-chaud/front/use-scanner-microservice
Arthi-chaud Sep 7, 2024
1dc7819
Readme: Change First screenshot
Arthi-chaud Sep 6, 2024
67c7e2b
Merge branch 'main' of github.com:Arthi-chaud/Meelo into scanner-micr…
Arthi-chaud Sep 7, 2024
3560edb
Merge pull request #752 from Arthi-chaud/scanner-microservice
Arthi-chaud Sep 7, 2024
4968ea0
Server: Compute Illustration Blurhash using aspect ratio (#754)
Arthi-chaud Sep 8, 2024
5f58e26
Server: fix discogs tests (#755)
Arthi-chaud Sep 8, 2024
7d65700
Front: Basic keyboard bindings (#756)
Arthi-chaud Sep 9, 2024
a5d1514
Exclusive songs (#757)
Arthi-chaud Sep 9, 2024
93771c4
Front: Fix Keybinding Trigger when focus on input (#758)
Arthi-chaud Sep 11, 2024
87d82b3
Exclusive songs: do not consider videos
Arthi-chaud Sep 11, 2024
26dd43c
Merge branch 'main' of github.com:Arthi-chaud/Meelo into v3
Arthi-chaud Sep 14, 2024
b078ba2
API: External Metadata Model (#760)
Arthi-chaud Sep 20, 2024
606ad93
Server: Setup Connection to MQ + Mock for test env
Arthi-chaud Sep 22, 2024
31a4ae5
Docker: Add MQ Service
Arthi-chaud Sep 22, 2024
4e82669
Server: README with expected environment variables
Arthi-chaud Sep 28, 2024
bb147d5
Server: Fix setup of rabbitmq for tests
Arthi-chaud Sep 28, 2024
a2e351c
Server: Send Event on Artist Creation
Arthi-chaud Sep 28, 2024
dbf75b8
Server: Send Event on Album and Song Creation
Arthi-chaud Sep 28, 2024
07da1f5
Matcher: Hello World + Setup Docker
Arthi-chaud Oct 10, 2024
023c74d
Server: Use nestjs native Event Publication system
Arthi-chaud Oct 11, 2024
bbbe62f
Matcher: Connect to MQ + Print received events
Arthi-chaud Oct 11, 2024
9f05114
Matcher: Parse MQ event
Arthi-chaud Oct 11, 2024
b0e6a36
Matcher: Configure API Client + Ping API at Startup
Arthi-chaud Oct 13, 2024
a609f10
Workflow: Basic CI for Matcher
Arthi-chaud Oct 17, 2024
19ef1cc
Illustration Service: Resize down the image before computing the blur…
Arthi-chaud Oct 21, 2024
6f6e03b
Matcher: Settings: Open file in constructor
Arthi-chaud Oct 25, 2024
160513e
Matcher: Settings: Parse
Arthi-chaud Oct 26, 2024
16a1ad0
Matcher: Test API Constructor
Arthi-chaud Oct 26, 2024
b1a585c
Workflows: Matcher: Lint job ignore tests
Arthi-chaud Oct 26, 2024
b44fba4
Matcher: Test Settings Parsing
Arthi-chaud Oct 26, 2024
84f6868
Workflows: Matcher: Run tests
Arthi-chaud Oct 26, 2024
ebf9c57
Server: Route to GET external providers
Arthi-chaud Oct 29, 2024
9c0c039
Matcher: Assets for providers
Arthi-chaud Oct 29, 2024
33eb777
Matcher: Models for Providers, Page + GET providers
Arthi-chaud Oct 29, 2024
cb1013f
Matcher: POST Providers at startup
Arthi-chaud Oct 30, 2024
751997d
Matcher: POST Provider icons
Arthi-chaud Oct 30, 2024
8fe7db2
Matcher: Setup Singleton Context
Arthi-chaud Oct 30, 2024
b415eba
Matcher: Provider Classes + Factory
Arthi-chaud Nov 1, 2024
34ca446
Front: Hide 'show exclusive tracks' button if album does not have an …
Arthi-chaud Sep 29, 2024
6c33587
Server: Rework getting random songs/albums by shuffling outside database
Arthi-chaud Sep 29, 2024
6e36c49
Server: Song Service: Add method to get many song groups
Arthi-chaud Oct 12, 2024
98e1fdf
Server: Song Group: Test API
Arthi-chaud Oct 13, 2024
1d8f496
Front: Model for song group
Arthi-chaud Oct 13, 2024
fb0756a
Server: Fix Pagination for song groups
Arthi-chaud Oct 13, 2024
faa837f
Front: Infinite Song Groups
Arthi-chaud Oct 14, 2024
99805cf
README: Mention song groups
Arthi-chaud Oct 14, 2024
7607f09
Server: Remove SongGroupcontroller form AppModule
Arthi-chaud Oct 14, 2024
5fb6150
Video Service: Uses random query param to shuffler videos
Arthi-chaud Oct 30, 2024
b10a1b0
Front: Infinite Video View: Add 'play all' and 'shuffle' buttons
Arthi-chaud Oct 30, 2024
09777dc
Video Service: Filter Videos by type
Arthi-chaud Oct 30, 2024
a3e6bde
Front: Filter Videos by type
Arthi-chaud Oct 30, 2024
3a26a69
Search Controller: POST Search History
Arthi-chaud Nov 2, 2024
1cb6820
Search history: Add endpoint to GET entries
Arthi-chaud Nov 2, 2024
c411bc7
Front: Search: Show history when no query
Arthi-chaud Nov 2, 2024
2c91936
Front: Fix SSR for search page
Arthi-chaud Nov 3, 2024
76bc241
Front: Use New External Metadata Model
Arthi-chaud Nov 26, 2024
fcc2407
Server: External Metadata: Reponse contains parent resource id
Arthi-chaud Nov 26, 2024
d521415
Matcher: match artists (#782)
Arthi-chaud Dec 4, 2024
321f2b3
Matcher: Match albums (#784)
Arthi-chaud Dec 10, 2024
26772e2
Server: Fix Spelling of 'Acappella' (#785)
Arthi-chaud Dec 12, 2024
77abd9f
Matcher: Provider 'features' (#786)
Arthi-chaud Dec 13, 2024
72559e7
API: Unique route to POST illustrations (#790)
Arthi-chaud Dec 14, 2024
135bb7d
V3: Merge
Arthi-chaud Dec 14, 2024
a9ab635
Matcher: Use new route to POST Artist Illustration
Arthi-chaud Dec 14, 2024
5dc0ed1
Matcher: Discogs Provider: Try getting the most square image
Arthi-chaud Dec 15, 2024
dc9cbbd
Matcher: Musicbrainz Provider: Silence Warning about JSON
Arthi-chaud Dec 15, 2024
3f17670
Matcher: Sanitize search features when 'and' or '&' in artist name
Arthi-chaud Dec 15, 2024
b65590c
Matcher: Musicbrainz: Avoid None deref when album does not have a pri…
Arthi-chaud Dec 15, 2024
4bc542e
Matcher: Do not POST release date if too far from the release date fr…
Arthi-chaud Dec 15, 2024
0a05e20
Server: Fix updating album date when its given by the matcher
Arthi-chaud Dec 15, 2024
ab29710
Matcher: Lint
Arthi-chaud Dec 15, 2024
5089aa0
Matcher: Get Album type (#794)
Arthi-chaud Dec 15, 2024
d0603e0
Matcher: Match Songs (#796)
Arthi-chaud Dec 18, 2024
878579a
Matcher: Catch Ctrl+C
Arthi-chaud Dec 19, 2024
19549ba
Server: Reject External Metadata DTO when 2 sources from the same pro…
Arthi-chaud Dec 19, 2024
1ef9026
Server: Set Priority to MQ events
Arthi-chaud Dec 19, 2024
40b2a3b
Merge pull request #791 from Arthi-chaud/external-metadata
Arthi-chaud Dec 19, 2024
3479713
Server: DELETE Library: await
Arthi-chaud Dec 19, 2024
a908d67
Matcher: Fetch messages by hand to ensure priority is respected
Arthi-chaud Dec 19, 2024
24222e3
Docker: MQ: Fix persistence of messages by setting a nodename
Arthi-chaud Dec 19, 2024
3aa6679
Matcher: Do not use Discogs for Artist description
Arthi-chaud Dec 19, 2024
ce4153a
Scanner: Compute Fingerprint for AcoustID
Arthi-chaud Dec 20, 2024
02d5bc9
Server: Registration: Save AcoustId
Arthi-chaud Dec 20, 2024
026eb05
Server: Allow microservice to GET files
Arthi-chaud Dec 20, 2024
0c05dfe
Matcher: Match Songs with acoustid fingerprint if exists
Arthi-chaud Dec 20, 2024
d7b6fee
Server: Getting BSides for a release includes Medleys
Arthi-chaud Dec 20, 2024
7cbdca9
Front: Release Page: Medley BSides in the extra section
Arthi-chaud Dec 20, 2024
d915a4d
Server: Define Enum for Event Priority
Arthi-chaud Dec 20, 2024
dc4a5ce
Scanner: Fix nullable fingerpint in DTO
Arthi-chaud Dec 20, 2024
390a7fe
Server: B-Sides: Avoid getting songs from older albums
Arthi-chaud Dec 20, 2024
fc3fdcf
Server: Rare Songs and BSides: Look into Video albums for audio tracks
Arthi-chaud Dec 20, 2024
be15036
CI: Trigger on PR/Push on v3 branch
Arthi-chaud Dec 20, 2024
225babc
Server: Fix Lint
Arthi-chaud Dec 20, 2024
42ecd2d
Server: Slug: Consider Ellipsis as word separator
Arthi-chaud Dec 20, 2024
d11dc73
Standalone Tracks (#808)
Arthi-chaud Dec 21, 2024
a07b78e
Scanner Dockerfile: Fix install of fpcalc
Arthi-chaud Dec 21, 2024
6f485b3
Doc: Fix default regex in settings.json
Arthi-chaud Dec 21, 2024
f95127a
Docker Compose: Attach config volume to matcher container
Arthi-chaud Dec 21, 2024
c86b8f0
Scanner: Accept multiple format for dates from ffprobe
Arthi-chaud Dec 21, 2024
a913482
Front: Fix loading state for artist external description
Arthi-chaud Dec 21, 2024
0f50129
Doc: settings.json: add regex for standalone tracks
Arthi-chaud Dec 21, 2024
5aaaa63
v3: Merge
Arthi-chaud Dec 21, 2024
db9150a
Matcher: Push Genres only if settings is true
Arthi-chaud Dec 22, 2024
3f200dc
Front: Remove 'Fetch Metadata' button in settings
Arthi-chaud Dec 22, 2024
28f220c
Matcher: Musicbrainz: Support more formats for release dates
Arthi-chaud Dec 22, 2024
e9b9577
Server: Set Track as master on registration if previous master is video
Arthi-chaud Dec 22, 2024
f02d3e3
Matcher: Use pika consumer for MQ events + set correct prefetch count…
Arthi-chaud Dec 22, 2024
68229e5
Doc: Update Provider features
Arthi-chaud Dec 22, 2024
de2cfc1
Server: Remove Dead code about settings
Arthi-chaud Dec 22, 2024
556df14
Server: Fix detection of BSides when video from related Video Album
Arthi-chaud Dec 22, 2024
b254796
Scanner: Embedded Metadata: Use 'year' key to get release date
Arthi-chaud Dec 22, 2024
7fe4de6
Matcher: Musicbrainz: Use genres instead of tags for songs
Arthi-chaud Dec 25, 2024
95dc125
Scanner: Remove black bars on thumbnails (#810)
Arthi-chaud Dec 25, 2024
b00badc
Server: Add 'Original Score' keyword to identify soundtrack albums
Arthi-chaud Dec 28, 2024
2fa3946
Server: Parser Test: Refactor tests for album type detection
Arthi-chaud Dec 28, 2024
f05b513
Server: Parser Test: Refactor tests for artist extraction in song names
Arthi-chaud Dec 28, 2024
2cd96e1
Server: Parser Test: Refactor tests for song type detection
Arthi-chaud Dec 29, 2024
79aee76
Server: Parser Test: Refactor tests for extraction of release names
Arthi-chaud Dec 29, 2024
655728b
Server: Parser Test: Refactor tests for extraction of track names
Arthi-chaud Dec 29, 2024
50647a3
Server: Parser Test: Refactor tests for splitgroups
Arthi-chaud Dec 29, 2024
118484b
Matcher: Do not fetch album genres if settings say so
Arthi-chaud Dec 29, 2024
32a52ec
Front: Player: Add link for standalone videos
Arthi-chaud Dec 30, 2024
634b0f2
Rewrite Videos (#818)
Arthi-chaud Jan 5, 2025
affd842
Matcher: Musicbrainz: Identify Live Albums
Arthi-chaud Jan 8, 2025
d788a5f
Matcher: Artist is optional in Album domain model
Arthi-chaud Jan 8, 2025
3d6f60e
Front: Player Control: Handle case when track is standalon + not rela…
Arthi-chaud Jan 8, 2025
fbbc2fb
API Cleanup (#821)
Arthi-chaud Jan 8, 2025
16cc168
Server: Registration: Prevent Race condition when featuring artist is…
Arthi-chaud Jan 8, 2025
e31c7f4
Server: Search Module: Define function to handle search-related union…
Arthi-chaud Jan 8, 2025
ff31958
Matcher: Musicbrainz: Search Album: Sanitize acronyms
Arthi-chaud Jan 10, 2025
ec64e16
Matcher: Musicbrainz: Search Album: handle 'Remixes' suffix
Arthi-chaud Jan 10, 2025
3dddcf4
Matcher: Musicbrainz: Search Album: Better Handling for compilation a…
Arthi-chaud Jan 10, 2025
24c5c3a
Server: Video Service: allow getting many by slug or id + allow delet…
Arthi-chaud Jan 9, 2025
a2a283e
Server: Song Service: allow getting many by slug or id + allow deleti…
Arthi-chaud Jan 9, 2025
7c65d8f
Server: Release Service: allow getting many by slug or id + allow del…
Arthi-chaud Jan 9, 2025
85ce3fb
Server: Genre Service: allow getting many by slug or id + allow delet…
Arthi-chaud Jan 10, 2025
c757027
Server: Artist Service: allow getting many by slug or id + allow dele…
Arthi-chaud Jan 10, 2025
79d5aaf
Server: Album Service: allow getting many by slug or id + allow delet…
Arthi-chaud Jan 10, 2025
2596726
Server: Track Service: allow getting many by slug or id + allow delet…
Arthi-chaud Jan 10, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
13 changes: 10 additions & 3 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,10 @@ POSTGRES_USER=
POSTGRES_PASSWORD=
# Name of Meelo's database
POSTGRES_DB=
# Username of Meelo's Message Queue
RABBITMQ_USER=
# Password of Meelo's Message Queue
RABBITMQ_PASSWORD=
#################### Config
# The directory that contains the `settings.json` file (and where the illustrations will be stored) (on the host machine)
CONFIG_DIR=
Expand All @@ -17,15 +21,18 @@ DATA_DIR=
# This will not affect front-end behaviour
ALLOW_ANONYMOUS=
#################### Web app
# URL of the server/api that would be accessible to the front app's server or any client
# If PORT=5000, it should look like 'http://0.0.0.0:5000/api' (mind the '/api')
PUBLIC_SERVER_URL=
# Public URL to access Meelo, without trailing slash
# Example: http://localhost:5000
PUBLIC_URL=
#################### Security
# Random String used to sign JWT Tokens
JWT_SIGNATURE=
# Key used to authenticate the Meilisearch Instance
# Should be a random string, must be at least 16 bytes
MEILI_MASTER_KEY=
# A coma-separated list of random strings used for internal authentication
# Example: API_KEYS=azertyuip,qwertyuiop
API_KEYS=
#################### Internal
# Do not change this
INTERNAL_DATA_DIR=/data
Expand Down
9 changes: 9 additions & 0 deletions .github/actions/cache-matcher/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
name: 'Cache (Matcher)'
description: 'Cache for Matcher'
runs:
using: "composite"
steps:
- run: apk add --update --no-progress lsb-release python3 py3-pip
shell: sh
- run: pip3 install -r matcher/requirements.txt
shell: sh
15 changes: 15 additions & 0 deletions .github/actions/cache-scanner/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
name: 'Cache (Scanner)'
description: 'Cache for Scanner'
runs:
using: "composite"
steps:
- run: |
cd scanner
go install github.com/swaggo/swag/cmd/swag@latest
~/go/bin/swag init -d app -o ./app/docs
shell: bash
- uses: actions/setup-go@v5
with:
check-latest: true
go-version-file: 'scanner/go.mod'
cache-dependency-path: scanner/go.sum
2 changes: 1 addition & 1 deletion .github/actions/cache-server/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,4 @@ runs:
./server/node_modules
./server/dist
key: server
restore-keys: server
restore-keys: server
6 changes: 3 additions & 3 deletions .github/workflows/front.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
name: "Front"
on:
pull_request:
branches: [ main, v2 ]
branches: [ main, v3 ]
push:
branches: [ main, v2 ]
branches: [ main, v3 ]
release:
types: [ published ]

Expand Down Expand Up @@ -169,4 +169,4 @@ jobs:
context: ./front
push: true
tags: ${{ github.event_name == 'release' && steps.meta.outputs.tags || 'arthichaud/meelo-front:edge' }}
labels: ${{ steps.meta.outputs.labels }}
labels: ${{ steps.meta.outputs.labels }}
131 changes: 131 additions & 0 deletions .github/workflows/matcher.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,131 @@
name: "Matcher"
on:
pull_request:
branches: [ main, v3 ]
push:
branches: [ main, v3 ]
release:
types: [ published ]

defaults:
run:
working-directory: ./matcher

jobs:
Changes:
runs-on: ubuntu-latest
permissions:
pull-requests: read
outputs:
matcher: ${{ steps.filter.outputs.matcher }}
steps:
- name: Check out the repo
uses: actions/checkout@v3
- uses: dorny/paths-filter@v2
id: filter
with:
filters: |
matcher:
- 'matcher/**'
- '.github/workflows/matcher.yml'
Typecheck:
needs: changes
if: ${{ needs.changes.outputs.matcher == 'true' && github.event_name == 'pull_request' }}
container: python:3.14.0a2-alpine3.21
runs-on: ubuntu-latest
steps:
- name: Check out the repo
uses: actions/checkout@v3
- name: Restore Dependencies
uses: ./.github/actions/cache-matcher
- uses: jakebailey/pyright-action@v2
with:
working-directory: './matcher/matcher'
Lint:
if: ${{ needs.changes.outputs.matcher == 'true' && github.event_name == 'pull_request' }}
container: python:3.14.0a2-alpine3.21
runs-on: ubuntu-latest
needs: [ Typecheck ]
steps:
- name: Check out the repo
uses: actions/checkout@v3
- name: Restore Dependencies
uses: ./.github/actions/cache-matcher
- run: pip install ruff
- run: ruff check matcher
Tests:
runs-on: ubuntu-latest
needs: [ Typecheck ]
container: python:3.14.0a2-alpine3.21
if: ${{ needs.changes.outputs.matcher == 'true' && always() }}
env:
GENIUS_ACCESS_TOKEN: "${{ secrets.GENIUS_ACCESS_TOKEN }}"
DISCOGS_ACCESS_TOKEN: "${{ secrets.DISCOGS_ACCESS_TOKEN }}"
CI: "1"
steps:
- name: Check out the repo
uses: actions/checkout@v3
- name: Restore Dependencies
uses: ./.github/actions/cache-matcher
- run: python3 -m tests
Dockerize:
if: ${{ needs.changes.outputs.matcher == 'true' && github.event_name == 'pull_request' }}
needs: [ Typecheck ]
runs-on: ubuntu-latest
permissions:
packages: read
contents: read
steps:
- name: Check out the repo
uses: actions/checkout@v3
- name: Log in to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Log in to the GitHub Container registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Typecheck Docker
uses: docker/build-push-action@v3
with:
context: ./matcher
push: false
Publish:
needs: changes
runs-on: ubuntu-latest
if: ${{ github.event_name == 'release' || (needs.changes.outputs.matcher == 'true' && github.event_name == 'push' && github.ref == 'refs/heads/main') }}
permissions:
packages: write
contents: read
steps:
- name: Check out the repo
uses: actions/checkout@v3
- name: Log in to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Log in to the GitHub Container registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@v4
with:
images: |
arthichaud/meelo-matcher
ghcr.io/${{ github.repository }}-matcher
- name: Typecheck and push Docker images
uses: docker/build-push-action@v3
with:
context: ./matcher
push: true
tags: ${{ github.event_name == 'release' && steps.meta.outputs.tags || 'arthichaud/meelo-matcher:edge' }}
labels: ${{ steps.meta.outputs.labels }}
155 changes: 155 additions & 0 deletions .github/workflows/scanner.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,155 @@
name: "Scanner"
on:
pull_request:
branches: [ main, v3 ]
push:
branches: [ main, v3 ]
release:
types: [ published ]

defaults:
run:
shell: bash
working-directory: ./scanner

jobs:
Changes:
runs-on: ubuntu-latest
permissions:
pull-requests: read
outputs:
scanner: ${{ steps.filter.outputs.scanner }}
steps:
- name: Check out the repo
uses: actions/checkout@v4
- uses: dorny/paths-filter@v3
id: filter
with:
filters: |
scanner:
- 'scanner/**'
- '.github/workflows/scanner.yml'
Build:
needs: changes
if: ${{ needs.changes.outputs.scanner == 'true' && github.event_name == 'pull_request' }}
runs-on: ubuntu-latest
steps:
- name: Check out the repo
uses: actions/checkout@v4
- name: Setup Go
uses: ./.github/actions/cache-scanner
- name: Install Dependencies and Build
run: go build -o scanner ./app
Format:
if: ${{ needs.changes.outputs.scanner == 'true' && github.event_name == 'pull_request' }}
runs-on: ubuntu-latest
needs: [ Build ]
steps:
- name: Check out the repo
uses: actions/checkout@v4
- name: Setup Go
uses: ./.github/actions/cache-scanner
- uses: Jerome1337/[email protected]
with:
gofmt-path: './scanner'
gofmt-flags: '-l'
Tests:
runs-on: ubuntu-latest
needs: [ Build ]
if: ${{ needs.changes.outputs.scanner == 'true' && always() }}
steps:
- name: Check out the repo
uses: actions/checkout@v4
- name: Setup Go
uses: ./.github/actions/cache-scanner
- run: sudo apt-get update -y && sudo apt-get install -y ffmpeg
- name: Install Coverage Report
run: go install github.com/jandelgado/gcov2lcov@latest
- name: Run tests
run: go test ./... -coverprofile=coverage.out
- name: Upload Unit Tests artifact
if: ${{ always() }}
uses: actions/upload-artifact@v3
with:
name: coverage-report-scanner
path: ./scanner/coverage.out
Analysis:
needs: [ Tests ]
name: "Static Analysis"
runs-on: ubuntu-latest
if: ${{ needs.changes.outputs.scanner == 'true' && always() }}
steps:
- uses: actions/checkout@v3
- name: Downlad Coverage artifact
uses: actions/download-artifact@v3
with:
name: coverage-report-scanner
path: ./scanner
- name: Run SonarCloud Scan
uses: SonarSource/sonarcloud-github-action@master
with:
projectBaseDir: ./scanner
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN_SCANNER }}
Dockerize:
if: ${{ needs.changes.outputs.scanner == 'true' && github.event_name == 'pull_request' }}
needs: [ Build ]
runs-on: ubuntu-latest
permissions:
packages: read
contents: read
steps:
- name: Check out the repo
uses: actions/checkout@v3
- name: Log in to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Log in to the GitHub Container registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build Docker
uses: docker/build-push-action@v3
with:
context: ./scanner
push: false
Publish:
needs: changes
runs-on: ubuntu-latest
if: ${{ github.event_name == 'release' || (needs.changes.outputs.scanner == 'true' && github.event_name == 'push' && github.ref == 'refs/heads/main') }}
permissions:
packages: write
contents: read
steps:
- name: Check out the repo
uses: actions/checkout@v3
- name: Log in to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Log in to the GitHub Container registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@v4
with:
images: |
arthichaud/meelo-scanner
ghcr.io/${{ github.repository }}-scanner
- name: Build and push Docker images
uses: docker/build-push-action@v3
with:
context: ./scanner
push: true
tags: ${{ github.event_name == 'release' && steps.meta.outputs.tags || 'arthichaud/meelo-scanner:edge' }}
labels: ${{ steps.meta.outputs.labels }}
Loading
Loading