Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
2855 commits
Select commit Hold shift + click to select a range
271fc5f
cleanup ptp description/images handling
Audionut Jul 30, 2025
d075a11
fix bad copy/paste
Audionut Jul 30, 2025
3905248
set the ptp_imagelist
Audionut Jul 30, 2025
8de31e3
add option to select specific new files for queue (#648)
Audionut Jul 31, 2025
12436ff
TMDB retry, set object
Audionut Jul 31, 2025
955be6d
robust framerate
Audionut Jul 31, 2025
d38f265
add clarity of max workers issues on seedboxes
Audionut Aug 1, 2025
89bf550
add linux ffmpeg check
Audionut Aug 1, 2025
6d6246b
ffmpeg - point to wiki
Audionut Aug 1, 2025
71d00c0
generic max workers error print
Audionut Aug 1, 2025
6e104ea
handle specific ffmpeg complex error
Audionut Aug 1, 2025
72804de
frame overlay print behind debug
Audionut Aug 1, 2025
482dce5
Log_file - save debug logs (#653)
Audionut Aug 1, 2025
a640da6
SPD - fix imdb in search existing (#656)
Audionut Aug 1, 2025
045bb71
Skip torrents for AL if they don't have a MAL ID (#651)
PythonCoderAS Aug 1, 2025
bb662e2
overrides - import at top
Audionut Aug 1, 2025
37f3d1c
ignore mkbrr binaries
Audionut Aug 2, 2025
9554f21
Don't discard original args, override them (#660)
ppkhoa Aug 2, 2025
827e489
fix uac
Audionut Aug 2, 2025
31a6c57
remove PSS (#663)
Audionut Aug 2, 2025
5bb5806
ULCX - remove erroneous space in name
Audionut Aug 2, 2025
9fa53ba
fix subplease service check
Audionut Aug 2, 2025
bf77018
fix tmdb secondary title search
Audionut Aug 2, 2025
208f65c
imdb - get more crew info (#665)
wastaken7 Aug 3, 2025
61fb607
Added support for BJS (#649)
wastaken7 Aug 4, 2025
3cb93f5
BJS - add internal flag (#668)
wastaken7 Aug 4, 2025
d1c6d83
BT - refactor (#669)
wastaken7 Aug 5, 2025
7c1ef78
BJS - safe string handling of description file
Audionut Aug 5, 2025
67b1fce
BT - safe string handling of description file
Audionut Aug 5, 2025
fb31951
rTorrent debugging
Audionut Aug 5, 2025
f45e4dd
Update release notes handling (#671)
Audionut Aug 5, 2025
fdf3b54
Fix manual tracker mode (#673)
Audionut Aug 6, 2025
c478149
BT and BJS fixes (#672)
wastaken7 Aug 6, 2025
9535259
fix: python compatibility in BJS (#674)
wastaken7 Aug 7, 2025
7844ce6
Add arg, skip-dupe-asking (#675)
Audionut Aug 7, 2025
4a82aed
BHD - fix tracker found match
Audionut Aug 7, 2025
d36002e
TL - fix description uploading in api mode
Audionut Aug 7, 2025
85fc9ca
ffmpeg - only first video streams
Audionut Aug 8, 2025
013aed1
Get language from track title (#676)
Audionut Aug 8, 2025
f68625d
TMDB/IMDB searching refactor and EMBY handling (#637)
Audionut Aug 8, 2025
2bb97b4
v5.3.0
github-actions[bot] Aug 8, 2025
1def355
TVDB series name not nonetype
Audionut Aug 9, 2025
48e922e
remove compatibility tracks from dupe/dubbed checking
Audionut Aug 9, 2025
29b8caf
fix onlyID (#677)
Audionut Aug 9, 2025
51d89c5
BT & BJS - fix language, add user input (#678)
wastaken7 Aug 10, 2025
9ed3b2d
fix: update SP category logic (#679)
groggy9788 Aug 10, 2025
316afe1
update mkbrr and add threading control (#680)
Audionut Aug 10, 2025
0de649b
add tv support for emby (#681)
Audionut Aug 10, 2025
633f151
add service XUMO
Audionut Aug 10, 2025
672c78a
v5.3.1
github-actions[bot] Aug 10, 2025
5d5164b
AR - catch multiple dots in name
Audionut Aug 10, 2025
166a1a5
correct meta object before inputting data
Audionut Aug 10, 2025
eccef19
guessit fallback
Audionut Aug 10, 2025
a7fe2ba
v5.3.2
github-actions[bot] Aug 11, 2025
15faaad
use all of result when specific is NoneType
Audionut Aug 11, 2025
3b21998
don't print guessit error in imdb
Audionut Aug 11, 2025
4a623d7
add support for multiple announce links (#691)
wastaken7 Aug 13, 2025
1170f46
Added support for PHD (#689)
wastaken7 Aug 13, 2025
6594f2c
pass meta to romaji
Audionut Aug 13, 2025
14380f2
DC - API update (#695)
wastaken7 Aug 13, 2025
3207fd3
remove trackers found in client (#683)
Audionut Aug 14, 2025
fa16ebf
Add service Chorki (#690)
razinhs Aug 14, 2025
aa84c07
fix docker mediainfo install (#699)
Audionut Aug 14, 2025
29fbcf5
Option - send upload urls to discord (#694)
Audionut Aug 14, 2025
a9a6a44
v5.3.3
github-actions[bot] Aug 14, 2025
e731e27
RF - now needs 2fa enabled to upload
Audionut Aug 14, 2025
ebabb5d
TL - fix outdated attribute (#701)
wastaken7 Aug 14, 2025
0e5bb28
Fix typo in source flag when uploading to SHRI (#703)
backstab5983 Aug 14, 2025
febe0f1
Catch conformance error from mediainfo and warn users (#704)
ppkhoa Aug 15, 2025
e09dbf2
Add correct country get to IMDb (#708)
Audionut Aug 16, 2025
77b539a
catch empty array from btn
Audionut Aug 16, 2025
95a9e54
highlight tracker removal
Audionut Aug 16, 2025
c34e6be
Fix img_host and None types (#707)
frenchcutgreenbean Aug 16, 2025
3fc3c1a
Option - libplacebo tonemapping (#706)
Audionut Aug 16, 2025
0071c71
fix docker tagging
Audionut Aug 16, 2025
73b40b9
clean empty bbcode from descriptions
Audionut Aug 16, 2025
ce7bec6
require api key to search
Audionut Aug 17, 2025
0b50d36
Dockerfile Improvements (#710)
Slikkster Aug 18, 2025
a57e514
restore docker apt update
Audionut Aug 18, 2025
5e1c541
PHD - fix region logic (#709)
wastaken7 Aug 18, 2025
309c54e
fix unit3d trackers not accept valid tvdb
Audionut Aug 18, 2025
fc813d0
v5.3.4
github-actions[bot] Aug 18, 2025
011d588
TL - cleanup torrent file handling (#714)
wastaken7 Aug 20, 2025
fbb8c2f
ANT tag reminder
Audionut Aug 20, 2025
6436d34
Added support for FunFile (#717)
wastaken7 Aug 20, 2025
3b30132
ULCX - aka check
Audionut Aug 22, 2025
d8fd725
ANT - manual commentary flag (#720)
wastaken7 Aug 22, 2025
5e38b0e
[FnP] Fix resolutions, types and add banned release groups (#721)
flowerey Aug 22, 2025
c85e83d
Revert "Dockerfile Improvements (#710)"
Audionut Aug 22, 2025
d86999d
fix release script
Audionut Aug 22, 2025
97573b6
v5.3.5
github-actions[bot] Aug 22, 2025
69a1384
fix docker mkbrr version
Audionut Aug 22, 2025
efb5f6b
v5.3.6
github-actions[bot] Aug 22, 2025
19ccbe5
Added support for PTSKIT (#730)
wastaken7 Aug 25, 2025
e96cd15
add missing site details (#731)
wastaken7 Aug 25, 2025
de38dba
LCD - fix region, mediainfo, naming (#732)
wastaken7 Aug 28, 2025
16d310c
SPD - fix and changes (#727)
wastaken7 Aug 28, 2025
a2d14af
BLU - update torrent injection (#736)
wastaken7 Aug 28, 2025
80b4337
Fix BHD tracker matching (#740)
backstab5983 Aug 31, 2025
95e5ab7
fix(SPD): send description to BBCode-compatible field (#738)
wastaken7 Aug 31, 2025
8d15765
Update HDB.py to clean size bbcode (#734)
9Oc Aug 31, 2025
3dcbb7c
Update existing client-tracker search to add 3 more trackers (#728)
FortKnox1337 Aug 31, 2025
c9d5466
correct screens track mapping and timeout
Audionut Aug 31, 2025
b78bb0a
skip auto torrent as arg
Audionut Aug 31, 2025
aae803f
fix queue handling when all trackers already in client
Audionut Aug 31, 2025
eafb38c
skip pathed torrents when edit mode
Audionut Aug 31, 2025
ffaddd4
preserve sat true
Audionut Aug 31, 2025
1f02274
ULCX - remove hybrid from name
Audionut Aug 31, 2025
85e653f
fix existing torrent search when not storage directory and not qbit
Audionut Aug 31, 2025
f4e236d
DP - no group tagging
Audionut Aug 31, 2025
6a12335
HDB - music category
Audionut Sep 1, 2025
2afce5b
Option - search tracker requests (#718)
Audionut Sep 1, 2025
5418f05
add tracker list debug
Audionut Sep 1, 2025
e2a3963
enhance(ASC): add localized TMDB data and search requests option (#743)
wastaken7 Sep 1, 2025
56b3b14
refactor unit3d torrent handling (#741)
Audionut Sep 1, 2025
de98c6e
enhance(DC): httpx, MediaInfo for BDs, and upload split (#744)
wastaken7 Sep 1, 2025
f238fc9
PT- ensure audio_pt and legenda_pt flags only apply to European Portu…
a1Thiago Sep 1, 2025
1e8633c
fix TAoE banned group checking
Audionut Sep 1, 2025
e862496
enhance(BJS): add localized TMDB data and search requests option (#746)
wastaken7 Sep 1, 2025
89809bb
redact passkeys from debug prints
Audionut Sep 2, 2025
5afafc0
clarify request usage
Audionut Sep 2, 2025
d87f060
BJS also does request searching
Audionut Sep 2, 2025
eb18da5
v5.4.0
github-actions[bot] Sep 2, 2025
34d0b4b
fix missing trackers for language processing (#747)
wastaken7 Sep 2, 2025
33d5aec
add missing function to common
Audionut Sep 2, 2025
2070880
v5.4.1
github-actions[bot] Sep 2, 2025
1c970ce
enhance(PHD): add search requests option, tags and other changes (#749)
wastaken7 Sep 2, 2025
a793060
enhance(BT): use tmdb cache file and other changes (#750)
wastaken7 Sep 2, 2025
b0f88e3
enhance(HDS): add search requests option and other changes (#751)
wastaken7 Sep 2, 2025
057d2be
python does python things
Audionut Sep 2, 2025
54c5c32
FNP - fix banned groups (#753)
flowerey Sep 2, 2025
d8a6779
more python quoting fixes
Audionut Sep 2, 2025
7a62585
MOAR quotes
Audionut Sep 2, 2025
9a8f190
chore: fix incompatible f-strings with python 3.9 (#754)
wastaken7 Sep 2, 2025
5b41f4d
fix(HUNO) - add multi audio, UHD BluRay naming (#756)
wastaken7 Sep 3, 2025
354e9c1
fix default tracker list through edit process
Audionut Sep 3, 2025
9d2991b
move sanatize meta definition
Audionut Sep 3, 2025
34e05f9
catch mkbrr config error
Audionut Sep 3, 2025
6c5bbc5
Added HDT (HD-Torrents) to client.py to allow tracker removal (#760)
FortKnox1337 Sep 3, 2025
8459a45
fix(PHD): add BD resolution, basic description, remove aka from title…
wastaken7 Sep 3, 2025
41d7173
fix(DC): Resize images in description generation (#762)
wastaken7 Sep 3, 2025
61dfd4a
add(client.py): skip more trackers (#763)
wastaken7 Sep 3, 2025
637a145
HUNO - unit3d torrent download
Audionut Sep 3, 2025
196d9fc
v5.4.2
github-actions[bot] Sep 3, 2025
f7c02d1
category regex tweak
Audionut Sep 4, 2025
1bb0ae8
Fix HUNO UHD remux (#767)
oxidize9779 Sep 5, 2025
dd0fdd9
Update to banned groups ULCX.py (#770)
Zips-sipZ Sep 5, 2025
bb16dc3
fix(HDT): update base URL (#766)
wastaken7 Sep 5, 2025
99e1788
fix(BJS): Remove Ultrawide tag detection from remaster tags (#768)
wastaken7 Sep 5, 2025
5bdf3cd
Added support for AvistaZ (#769)
wastaken7 Sep 5, 2025
341248a
TL - api upload update
Audionut Sep 6, 2025
307ba71
add tonemapping header to more sites
Audionut Sep 6, 2025
4950b08
fix existing tonemapped status
Audionut Sep 6, 2025
8733c65
HDB - fix additional space in name when atmos
Audionut Sep 6, 2025
9165411
fix bad space
Audionut Sep 6, 2025
323a365
set df encoding
Audionut Sep 6, 2025
9fbde8f
TL api tweaks
Audionut Sep 6, 2025
534ece7
TL - fix search existing option when api
Audionut Sep 6, 2025
ab37785
TL - add debugging
Audionut Sep 6, 2025
6d25afd
fix bad copy/paste
Audionut Sep 6, 2025
677cee8
TL - login update
Audionut Sep 6, 2025
60ed690
git username mapping
Audionut Sep 7, 2025
ab4f79a
FNP - remove a group for banned release groups (#775)
flowerey Sep 7, 2025
f14066f
Added support for CinemaZ, refactor Z sites to reuse common codebase …
wastaken7 Sep 10, 2025
b9473cb
Update titles of remux for HDB (#778)
GizmoBal Sep 10, 2025
4dc1b65
Added support for GreatPosterWall (#779)
wastaken7 Sep 11, 2025
5ee449f
SHRI - language handling in name
Audionut Sep 15, 2025
5862df4
fix(GPW) - timeout, screenshots, check available slots (#789)
wastaken7 Sep 16, 2025
10bf73f
fix(AvistaZ sites) - languages, resolution, naming, rules (#782)
wastaken7 Sep 16, 2025
1b0c549
add argument trackers remove
Audionut Sep 16, 2025
da0b39a
add(region.py) - Kocowa+ (#790)
wastaken7 Sep 17, 2025
dbe3964
fix(CBR.py) - UnboundLocalError when uploading a full disc (#791)
wastaken7 Sep 17, 2025
da1b891
Fix HUNO bit rate detection (#792)
oxidize9779 Sep 17, 2025
5f94385
SHRI - remove dual audio
Audionut Sep 17, 2025
0d0f1a4
add argument -sort (#796)
Audionut Sep 18, 2025
0dc4275
add config options for ffmpeg (#798)
Audionut Sep 18, 2025
5edfbeb
add venv to .gitignore (#797)
tiberio87 Sep 18, 2025
38a09aa
strip multiple spaces from bdinfo (#786)
Audionut Sep 18, 2025
8623b18
fix SHRI dual audio brain fart
Audionut Sep 18, 2025
f0f5685
BHD - request search support (#773)
Audionut Sep 18, 2025
159fc0f
can't spell
Audionut Sep 18, 2025
42dd363
update DP ban list (#800)
jschavey Sep 19, 2025
a797844
fix(Avistaz) - add XviD/DivX to meta (#793)
wastaken7 Sep 19, 2025
cf25142
Remove TOCASHARE from supported sites (#802)
wastaken7 Sep 19, 2025
24c625e
conform to GPW description image rules (#804)
GuillaumedeVolpiano Sep 19, 2025
adfb263
add(get_name.py) - year for DVD's, audio for DVDRip's (#799)
wastaken7 Sep 19, 2025
bf07690
v5.4.3
github-actions[bot] Sep 19, 2025
07e8334
fix(GPW) - do not print empty descriptions (#805)
wastaken7 Sep 20, 2025
054ce4f
SHRI - Check group tag and Italian title handling (#803)
tiberio87 Sep 21, 2025
aa62941
fix(HDS) - use [pre] for mediainfo to correctly use monospaced fonts …
wastaken7 Sep 23, 2025
5ff6249
fix(BT) - status code, post data, torrent id (#808)
wastaken7 Sep 23, 2025
03c8ffd
feat(UNIT3D) - refactor UNIT3D websites to reuse common code base (#801)
wastaken7 Sep 23, 2025
9772b0a
ANT - fix trying to call lower on dict
Audionut Sep 24, 2025
788be1c
SHRI - Remove 'Dubbed', add [SUBS] tag (#815)
tiberio87 Sep 24, 2025
ddbd135
graceful exit
Audionut Sep 24, 2025
a680692
updated unit3d trackers - request support
Audionut Sep 24, 2025
49efdca
release notes
Audionut Sep 24, 2025
48fa975
Update FNP resolution id (#818)
oxidize9779 Sep 25, 2025
2365937
refactor(HDT) (#821)
wastaken7 Sep 26, 2025
b7aea98
more async (#819)
Audionut Sep 26, 2025
9b68819
print in debug
Audionut Sep 26, 2025
b9ef753
set screens from manual frames
Audionut Sep 26, 2025
5ad4fce
more debugging
Audionut Sep 26, 2025
7902066
more debugging
Audionut Sep 26, 2025
ab27990
Refine dual-audio detection for zxx (#822)
GizmoBal Sep 26, 2025
cae1c38
fix extended bluray parsing
Audionut Sep 26, 2025
3b59c03
feat: Improve duplicate search functionality (#820)
wastaken7 Sep 26, 2025
5ebdc86
remove dupe requirement
Audionut Sep 26, 2025
63adf3c
disable filename match
Audionut Sep 26, 2025
3555d12
fix unit3d flags
Audionut Sep 28, 2025
69aa3fa
exact filename fix
Audionut Sep 28, 2025
09bc878
Improve NFO downloading robustness (#827)
noobiangodd Sep 28, 2025
eec5d60
PTP redact token
Audionut Sep 28, 2025
a073247
enable predb
Audionut Sep 28, 2025
9146011
qbit retries and async calls
Audionut Sep 28, 2025
ed7eda9
add sleeps to pack processing
Audionut Sep 28, 2025
aa97763
add DOCPLAY
Audionut Sep 28, 2025
506ea47
fix unit3d flags api
Audionut Sep 28, 2025
df7769a
LST edition ids
Audionut Sep 28, 2025
e62e819
more parsers to lxml
Audionut Sep 28, 2025
220c5f2
fix pack image creation
Audionut Sep 28, 2025
a06c1dd
fix request type checking
Audionut Sep 29, 2025
4cbebc4
Fix crash when no edit args provided (handle no/empty input safely) (…
ca1m985 Sep 30, 2025
ca76801
catch keyboard interruptions in cli_ui
Audionut Sep 30, 2025
25b5f09
don't remove nogrp type tags by default
Audionut Sep 30, 2025
50595c2
AZ network fixes
Audionut Sep 30, 2025
4e6a5ce
fix: only print overlay info if relevant
Audionut Sep 30, 2025
c55094a
add(meta): video container (#831)
wastaken7 Sep 30, 2025
6d7fa3c
fix: frame overlay check tracker list check
Audionut Sep 30, 2025
d1044c9
fix use_libplacebo false
Audionut Sep 30, 2025
073126c
fix: improve container detection for different disc types (#835)
wastaken7 Sep 30, 2025
bfe964a
set safe debugging languages
Audionut Oct 1, 2025
bebe17c
print automated ffmpeg tonemap checking failure
Audionut Oct 1, 2025
f3fa16c
fix: don't overwrite ids from mediainfo
Audionut Oct 1, 2025
57af870
HDT - auth token availability (#839)
Audionut Oct 1, 2025
6274db1
Add support for bluray.com scraping for DVDs (#828)
9Oc Oct 1, 2025
070062c
Update config-generator.py (#846)
AzureBelmont Oct 3, 2025
3424794
fix(ANT): add type and audioformat to post data (#845)
wastaken7 Oct 3, 2025
502e40d
refactor: replace UploadException with tracker_status handling, where…
wastaken7 Oct 3, 2025
1702d3d
cleanup handling for android
Audionut Oct 3, 2025
9a9b3c4
add support for qui reverse proxy (#833)
Audionut Oct 3, 2025
ff99d08
improvement: avoid re-executing validate_credentials by temporarily s…
wastaken7 Oct 3, 2025
a924df4
release notes
Audionut Oct 3, 2025
b1ab148
v6.0.0
github-actions[bot] Oct 3, 2025
c8ccf5a
fix version file
Audionut Oct 3, 2025
5428927
erroneous v in version file
Audionut Oct 3, 2025
25591e0
Fix YUS get_type_id (#850)
oxidize9779 Oct 3, 2025
f5d11b8
fix: LCD and UNIT3D upload (#852)
wastaken7 Oct 4, 2025
9311996
Update banned release groups of various trackers (#848)
flowerey Oct 4, 2025
709dc8f
v6.0.1
github-actions[bot] Oct 4, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions .flake8
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
[flake8]
max-line-length = 6000
exclude =
.git,
__pycache__,
build,
dist,
data/version.py
2 changes: 2 additions & 0 deletions .github/workflows/.flake8
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
[flake8]
max-line-length = 6000
56 changes: 56 additions & 0 deletions .github/workflows/check-mkbrr-updates.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
name: Check for New mkbrr Release

on:
schedule:
- cron: "0 12 * * 1" # Runs every Monday at 12:00 UTC
workflow_dispatch:

jobs:
check-release:
runs-on: ubuntu-latest

steps:
- name: Get Latest Release Tag
id: get_release
run: |
LATEST_TAG=$(curl -s https://api.github.com/repos/autobrr/mkbrr/releases/latest | jq -r .tag_name)
echo "Latest mkbrr release: $LATEST_TAG"
echo "LATEST_TAG=$LATEST_TAG" >> $GITHUB_ENV

- name: Check if Issue Already Exists for This Version
id: check_issue
run: |
# Get all issues with the mkbrr label
ISSUES=$(curl -s -H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" \
"https://api.github.com/repos/${{ github.repository }}/issues?state=all&labels=mkbrr&per_page=100")

# Check if any issue already mentions this specific release tag
ISSUE_EXISTS=$(echo "$ISSUES" | jq -r --arg tag "$LATEST_TAG" \
'[.[] | select(.body | contains($tag))] | length')

if [[ "$ISSUE_EXISTS" -gt 0 ]]; then
echo "Issue already exists for mkbrr release $LATEST_TAG"
echo "ISSUE_EXISTS=true" >> $GITHUB_ENV
else
echo "No issue exists for mkbrr release $LATEST_TAG"
echo "ISSUE_EXISTS=false" >> $GITHUB_ENV
echo "NEW_RELEASE=true" >> $GITHUB_ENV
fi

- name: Create GitHub Issue Notification
if: env.NEW_RELEASE == 'true' && env.ISSUE_EXISTS == 'false'
run: |
# Create issue body with proper variable expansion
ISSUE_BODY="A new mkbrr release ($LATEST_TAG) has been detected. Consider running the update workflow to incorporate the latest mkbrr binaries into Upload-Assistant."

# Use the variable in the JSON payload
curl -X POST -H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" \
-H "Accept: application/vnd.github.v3+json" \
-d "{
\"title\": \"New mkbrr Release Available!\",
\"body\": \"$ISSUE_BODY\",
\"labels\": [\"mkbrr\", \"update\"]
}" \
"https://api.github.com/repos/${{ github.repository }}/issues"

echo "Created new issue for mkbrr release $LATEST_TAG"
66 changes: 46 additions & 20 deletions .github/workflows/docker-image.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
name: Create and publish a Docker image
name: Create and publish Docker images

on:
push:
branches: ['master']
release:
types:
- published
workflow_dispatch:

env:
REGISTRY: ghcr.io
Expand All @@ -17,41 +19,65 @@ jobs:

steps:
- name: Checkout repository
uses: actions/checkout@v3
uses: actions/checkout@v4

- name: Set up QEMU
uses: docker/setup-qemu-action@v3

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
uses: docker/setup-buildx-action@v3

- name: Log in to the Container registry
uses: docker/login-action@v2
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@v4
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}

- name: Get lowercase repo name
id: get_lowercase_repo_name
run: |
REPO_NAME=${{ env.IMAGE_NAME }}
echo "LOWER_CASE_REPO_NAME=${REPO_NAME,,}" >> $GITHUB_ENV

- name: Get short commit id
id: get_short_commit_id

- name: Get version for tagging
run: |
echo "SHA_SHORT=$(git rev-parse --short HEAD)" >> $GITHUB_ENV

if [ "${{ github.event_name }}" == "release" ]; then
RELEASE_VERSION="${{ github.event.release.tag_name }}"
echo "VERSION=${RELEASE_VERSION}" >> $GITHUB_ENV
elif [ "${{ github.event_name }}" == "workflow_dispatch" ]; then
BRANCH_NAME="${{ github.ref_name }}"
echo "VERSION=${BRANCH_NAME}" >> $GITHUB_ENV
fi

- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@v5
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
tags: |
type=ref,event=branch
type=ref,event=tag
type=raw,value=latest,enable=${{ github.event_name == 'release' }}

- name: Build and push Docker image
uses: docker/build-push-action@v3
uses: docker/build-push-action@v5
with:
context: .
platforms: linux/amd64
push: true
tags: ${{ steps.meta.outputs.tags }}, ${{ env.REGISTRY }}/${{ env.LOWER_CASE_REPO_NAME }}:${{ env.SHA_SHORT }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=gha
cache-to: type=gha,mode=max

- name: Output build information
run: |
echo "✅ Docker images built and pushed successfully!"
echo "🐋 Images:"
echo " - ${{ env.REGISTRY }}/${{ env.LOWER_CASE_REPO_NAME }}:${{ env.VERSION }}"
echo " - ${{ env.REGISTRY }}/${{ env.LOWER_CASE_REPO_NAME }}:latest"
if [ "${{ github.event_name }}" == "release" ]; then
echo "📝 Triggered by release: ${{ github.event.release.tag_name }}"
else
echo "📝 Triggered by manual workflow dispatch on branch: ${{ github.ref_name }}"
fi
33 changes: 33 additions & 0 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
name: Lint

on:
push:
branches:
- develop
- master
pull_request:
branches:
- master
- develop
workflow_dispatch:

jobs:
lint:
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v3

- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.x'

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install flake8

- name: Run linter
run: flake8 .
99 changes: 99 additions & 0 deletions .github/workflows/mkbrr-update.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
name: Update mkbrr Binaries

on:
workflow_dispatch: # Manual trigger only

jobs:
update-mkbrr:
runs-on: ubuntu-latest

steps:
- name: Checkout Repository
uses: actions/checkout@v4

- name: Get Latest Release Tag
id: get_release
run: |
LATEST_TAG=$(curl -s https://api.github.com/repos/autobrr/mkbrr/releases/latest | jq -r .tag_name)
echo "LATEST_TAG=$LATEST_TAG" >> $GITHUB_ENV

- name: Clean Existing Binaries
run: |
# Remove existing binary directories to avoid conflicts
rm -rf bin/mkbrr/*

- name: Download Release Assets
run: |
mkdir -p bin/mkbrr
cd bin/mkbrr

# Fetch latest release assets
assets=$(curl -s https://api.github.com/repos/autobrr/mkbrr/releases/latest | jq -r '.assets[].browser_download_url')

for url in $assets; do
filename=$(basename $url)
echo "Downloading $filename..."
curl -L -O "$url"
done

- name: Extract & Organize Binaries
run: |
cd bin/mkbrr
mkdir -p windows/x86_64 macos/arm64 macos/x86_64 linux/amd64 linux/arm linux/arm64 linux/armv6 freebsd/x86_64

# Extract and move binaries to correct folders
for file in *; do
case "$file" in
*windows_x86_64.zip)
echo "Extracting $file to windows/x86_64..."
unzip -o "$file" -d windows/x86_64 ;;
*darwin_arm64.tar.gz)
echo "Extracting $file to macos/arm64..."
tar -xzf "$file" -C macos/arm64 ;;
*darwin_x86_64.tar.gz)
echo "Extracting $file to macos/x86_64..."
tar -xzf "$file" -C macos/x86_64 ;;
*freebsd_x86_64.tar.gz)
echo "Extracting $file to freebsd/x86_64..."
tar -xzf "$file" -C freebsd/x86_64 ;;
*linux_amd64.tar.gz|*linux_x86_64.tar.gz)
echo "Extracting $file to linux/amd64..."
tar -xzf "$file" -C linux/amd64 ;;
*linux_arm64.tar.gz)
echo "Extracting $file to linux/arm64..."
tar -xzf "$file" -C linux/arm64 ;;
*linux_armv6.tar.gz)
echo "Extracting $file to linux/armv6..."
tar -xzf "$file" -C linux/armv6 ;;
*linux_arm.tar.gz)
echo "Extracting $file to linux/arm..."
tar -xzf "$file" -C linux/arm ;;
*.apk|*.deb|*.rpm|*.pkg.tar.zst)
echo "Moving $file to linux/amd64..."
mv "$file" linux/amd64 ;; # Move package files
esac
done

# Ensure executables have correct permissions
find linux macos freebsd -type f -name "mkbrr" -exec chmod +x {} \;
echo "All done with binary extraction"

- name: Cleanup Unneeded Files
run: |
cd bin/mkbrr
echo "Deleting unneeded archives and checksum files..."

# Delete all archives & extracted source files
rm -f *.tar.gz *.zip *.apk *.deb *.rpm *.pkg.tar.zst *.txt

# Verify cleanup
echo "Remaining files in bin/mkbrr:"
ls -R

- name: Commit & Push Changes
run: |
git config --global user.name "GitHub Actions"
git config --global user.email "actions@github.com"
git add bin/mkbrr
git commit -m "Updated mkbrr binaries to $LATEST_TAG" || echo "No changes to commit"
git push
Loading