Commit Graph

318 Commits

Author SHA1 Message Date
Roardom
e1486613bb security: randomize info_hash upon upload and hide it from users
Require a user to download a .torrent file in order to view the info_hash.
2025-08-20 12:27:12 +00:00
HDVinnie
5600e18fb9 Merge pull request #4861 from Roardom/fix-null-quicksearch
(Fix) Quicksearch searching by null throws error
2025-07-22 17:29:00 -04:00
Roardom
26e27f7300 fix: quicksearch searching by null throws error
The middleware automatically converts empty strings to null. We want to accept empty strings here for the search to work. Currently, the regex throws an error when a null is passed to it.
2025-07-22 09:26:21 +00:00
Roardom
820946c2b6 refactor: chatbox user chat status
Only save the user's chat status in one place, and sync it with the server when it's updated.
2025-07-20 10:18:17 +00:00
Roardom
8618aa1474 update: improve imdb regex
Lookarounds are not performant. Also, fix the client side regex validation to allow links.
2025-07-19 08:22:12 +00:00
Roardom
46bfccc8b7 refactor: use enums for auth guards, middleware groups, and rate limits 2025-06-22 20:00:02 +00:00
AnabolicsAnonymous
3cbb2e5340 update: add a moderation opt in check to torrent api 2025-04-29 07:18:01 -05:00
Roardom
fb7b320f99 update: cache 1-2-character quicksearch results
Meilisearch seems to be a bit slow sometimes for 1 character searches (300ms delay) since it tries to count the total count accurately. Normally meilisearch has a maxTotalHits of 1000, but we have it set to the number of torrents plus 1000 so that we can have accurate page counts. This causes some additional lag for the quick search which only returns the top 20 results.

Every cache entry uses approximately 12kB from some quick testing, so 2 character is ~30 MB, while 3 characters is ~1.5 GB. Only cache up to 2 characters for now as a result.
2025-04-13 08:20:11 +00:00
Roardom
0e7f3a1c62 fix: allow searching for movies/tv whose names are numbers
Searching for a number is a shortcut to searching by tmdb. Unfortunately, that means searching for movies/tv whose names are number never show up in the quick search results. Change the logic to also search by an exact name match when searching by number to additionally include shows whose names are numbers alongside the tmdb result.
2025-03-31 22:37:19 +00:00
Roardom
9c1282649b fix: extracting first character from utf8 string
The logic wasn't multi-byte safe. Should fix #4599.
2025-03-30 08:30:46 +00:00
Roardom
7d13e1fb56 fix: allow nullable meta ids in api torrent upload validation 2025-03-26 22:37:49 +00:00
Roardom
f16b775151 fix: api torrent upload nullable metadata ids
The falsey to nullable conversion has to be done here as well.
2025-03-26 05:47:31 +00:00
Roardom
57fada887f fix: typo in quick search meilisearch query
Incorrect syntax.
2025-03-26 02:44:57 +00:00
HDVinnie
7eea77c3e3 Merge pull request #4580 from Roardom/nullable-meta-ids
(Update) Store null for metadata id if they do not exist
2025-03-25 21:47:34 -04:00
Roardom
ea1bdca818 update: store null for metadata id if they do not exist
And make it difficult / encourage users to submit the ids instead of leaving them empty.
2025-03-25 23:19:10 +00:00
Roardom
8257629a10 fix: api upload by modo always announcing as featured 2025-03-24 22:28:01 +00:00
Roardom
ae33c74f2b refactor: prefix tmdb metadata models with tmdb
Will help for when there exists other metadata sources available (such as already done for igdb)

Step 4 in cleaner meta fetching code.
2025-03-17 20:41:01 +00:00
Roardom
32cf8da4db refactor: split tmdb into movie_id and tv_id
Step 2 in cleaner meta fetching code.
2025-03-16 22:55:24 +00:00
HDVinnie
09f8404ada Merge pull request #4559 from Roardom/igdb-int 2025-03-16 17:32:40 -04:00
Roardom
7889c71618 refactor: use unsigned int for igdb
Use the correct type for the external id.

Step 3 in cleaner meta fetching code.
2025-03-16 20:58:30 +00:00
HDVinnie
49c31d3515 Merge pull request #4557 from Roardom/game-meta-auto 2025-03-16 16:30:29 -04:00
Roardom
24ed359288 fix: auto fetch igdb metadata on torrent/request create/update 2025-03-15 13:47:59 +00:00
Roardom
494afca0d7 fix: torrents uploaded by mods via api automatically featured 2025-03-13 21:32:34 +00:00
HDVinnie
2a3a718dfe Merge pull request #4553 from Roardom/game-db
(Refactor) Save igdb games to the database
2025-03-12 21:29:17 -04:00
Roardom
8fde78124b refactor: save igdb games to the database
Step 1 towards cleaner meta fetching code.

Users with a game category must run `php artisan fetch:meta` after migration.
2025-03-11 19:48:25 +00:00
Roardom
b9dfd3e6dd update: show category name instead of Movie/TV in quick search
For when there exists multiple categories of the same meta.
2025-03-10 11:42:09 +00:00
Roardom
5a6259cea7 remove: sd content and stream optimized flags
SD content is represented by the resolutions table now instead of this flag. Most people prefer web-dls over stream-optimized encodes these days.
2025-03-09 03:33:32 +00:00
HDVinnie
6e2c8f569d Merge pull request #4492 from Roardom/moderation-status-enum
(Refactor) Use moderation status enum and cast
2025-03-05 06:16:23 -05:00
HDVinnie
2cbdd3553a Merge pull request #4513 from Roardom/fix-storage
(Fix) Torrent files storage disk
2025-03-04 21:42:38 -05:00
Roardom
2357db36a3 fix: torrent files storage disk
Regression from #4497
2025-03-01 03:54:31 +00:00
HDVinnie
7c4a0e84ac PHP Style Change (Laravel Pint CI) 2025-02-27 13:36:46 +00:00
Jay Sizzla
ba1818be0c Fix spell CI 2025-02-27 13:33:54 +00:00
Jay Sizzla
28a8779bcd Allow internal options for internals in non-internal group
Internals that are not member of the internal group (e.g. Editor) but not Moderator+ should still be able to set the internal options on their uploads.
Also, replace all group->is_internal with internals->exists in app & views.
2025-02-27 13:33:26 +00:00
Roardom
a447269552 refactor: use moderation status enum and cast
For consistency and less magic numbers hard coded everywhere.
2025-02-26 14:23:02 +00:00
Roardom
ab0851f73a update: upgrade to phpstan 2 2025-02-24 17:19:39 +00:00
Roardom
b2e29cfcf0 fix: migrate boolean columns to tinyint(1)
These columns were previously tiny ints without the (1) display width or regular ints, or smallints. They should all be tinyint(1).
2025-02-19 06:25:21 +00:00
HDVinnie
c48d062a75 Merge pull request #4469 from Roardom/normalize-featured 2025-02-18 10:32:14 -05:00
HDVinnie
ae1d16f237 Merge pull request #4479 from Roardom/improve-quick-search 2025-02-15 08:19:53 -05:00
Roardom
aa57a375cd update: add fallback images to quicksearch 2025-02-13 23:18:15 +00:00
Roardom
8e455ef448 fix: api chat controller json return types
Makes static analysis happy.
2025-02-11 06:06:17 +00:00
Roardom
df9fa5004c fix: normalize torrent featured flag
When the featured flag goes out of sync with the featured_torrents table (for reasons still unknown), the torrent is permanently labeled as freeleech, while 100% of traffic is always credited.
2025-02-10 17:47:12 +00:00
Roardom
604b7e1937 add: spell check ci
Just an initial portion for now fixing incorrect text and preventing future incorrect text. Eventually, I'd like to fix everything still listed under "ignoredWords" in cspell.json.
2025-01-24 11:30:34 +00:00
HDVinnie
9ea8838cc6 add: prefix option 2025-01-01 16:05:58 -05:00
HDVinnie
e71b28c588 Merge pull request #4358 from Roardom/modq-order
(Fix) Order torrent creation from most to least important
2024-12-02 08:38:47 -05:00
HDVinnie
192b5ed15d chore: remove unused imports that pint is missing 2024-12-01 20:52:32 -05:00
Roardom
e7c369002e fix: order torrent creation from most to least important 2024-12-01 19:51:20 +00:00
HDVinnie
c82d70c249 PHP Style Change (Laravel Pint CI) 2024-11-12 21:08:34 +00:00
HDVinnie
c09dff69be add: personal user api
- wiki updated https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v8.3.4)
2024-11-12 16:07:22 -05:00
HDVinnie
af21147802 remove: hdvinnie/laravel-html-purifier in preparation for octane 2024-10-22 22:10:43 -04:00
HDVinnie
2529f646ee Merge pull request #4250 from Roardom/torrent-bool-refundable 2024-10-20 09:55:01 -04:00