Skip to content
This repository has been archived by the owner on Oct 13, 2024. It is now read-only.

v0.3.0 #129

Merged
merged 78 commits into from
Nov 30, 2023
Merged
Show file tree
Hide file tree
Changes from 12 commits
Commits
Show all changes
78 commits
Select commit Hold shift + click to select a range
acad48e
feat: implement automatic removal of old theme songs (#128)
ReenigneArcher Aug 1, 2023
9d54df5
feat: add theme completion report (#130)
ReenigneArcher Aug 5, 2023
ed1ae2d
fix(ci): localization workflow fails to install python-plexapi (#134)
ReenigneArcher Aug 5, 2023
ddef443
ci(localization): fix git diff (#135)
ReenigneArcher Aug 6, 2023
bbdf774
ci(localization): fix localization path (#136)
ReenigneArcher Aug 6, 2023
ffa4fa6
ci(tests): test python dependencies (#137)
ReenigneArcher Aug 6, 2023
de5aed5
fix(localization): fix translation file names (#138)
ReenigneArcher Aug 6, 2023
02d0977
New Crowdin updates (#133)
ReenigneArcher Aug 7, 2023
aaa5e12
feat: add support for collections (#140)
ReenigneArcher Aug 25, 2023
b5de215
New Babel Updates (#145)
LizardByte-bot Aug 25, 2023
6f45eff
build(deps): bump peter-evans/create-pull-request from 4 to 5 (#139)
dependabot[bot] Aug 25, 2023
7bdcbb4
ci: update global workflows (#146)
LizardByte-bot Aug 25, 2023
b8301e0
ci: update global docker (#147)
LizardByte-bot Aug 25, 2023
5cfd567
docs: fix readthedocs build (#150)
ReenigneArcher Sep 6, 2023
66215e8
build(deps): use python-plexapi-backport (#152)
ReenigneArcher Sep 7, 2023
aacfbe9
ci(tests): bootstrap plex server (#153)
ReenigneArcher Sep 22, 2023
cc33cbf
ci: update global docker (#161)
LizardByte-bot Sep 22, 2023
2603943
ci: update global python (#160)
LizardByte-bot Sep 22, 2023
3f1b450
ci: update global workflows (#159)
LizardByte-bot Sep 22, 2023
95b26d1
build(deps): bump actions/checkout from 3 to 4 (#149)
dependabot[bot] Sep 22, 2023
d2b1c9c
New Crowdin updates (#142)
ReenigneArcher Sep 22, 2023
772499e
build(deps): use plexhints from pypi (#162)
ReenigneArcher Sep 28, 2023
11996a1
ci: update global workflows (#172)
LizardByte-bot Oct 5, 2023
964b3b9
ci: update global workflows (#173)
LizardByte-bot Oct 5, 2023
4778272
ci: use new LizardByte setup python action (#174)
ReenigneArcher Oct 6, 2023
caee348
ci: update global workflows (#177)
LizardByte-bot Oct 9, 2023
71f2d9a
ci: update global workflows (#179)
LizardByte-bot Oct 10, 2023
4269c4c
ci: update release notifier (#180)
LizardByte-bot Oct 10, 2023
761b234
New translations themerr-plex.po (French) (#181)
ReenigneArcher Oct 11, 2023
9475d8a
ci: update global workflows (#182)
LizardByte-bot Oct 12, 2023
9a557b1
ci: update release notifier (#183)
LizardByte-bot Oct 16, 2023
9e18f7c
test: fix macos functional test (#186)
ReenigneArcher Oct 17, 2023
cbbd71a
test: increase plugin log search timeout (#187)
ReenigneArcher Oct 18, 2023
4dcfbb9
build(deps-dev): bump plexhints from 0.1.0 to 0.1.1 (#185)
dependabot[bot] Oct 18, 2023
c5b6196
build(deps): bump LizardByte/plexhints from 0.1.0 to 0.1.1 (#184)
dependabot[bot] Oct 18, 2023
094ffba
build(deps): bump plexapi-backport[alert] from 4.15.2 to 4.15.4 (#171)
dependabot[bot] Oct 18, 2023
41dcc52
build(deps): bump bootstrap from 5.2.2 to 5.3.2 (#165)
dependabot[bot] Oct 18, 2023
8269b52
build(deps): bump jquery from 3.7.0 to 3.7.1 (#167)
dependabot[bot] Oct 18, 2023
f8c0639
build(deps): bump @fortawesome/fontawesome-free from 6.2.0 to 6.4.2 (…
dependabot[bot] Oct 18, 2023
c44d595
build(deps): bump @fontsource/open-sans from 4.5.13 to 5.0.15 (#176)
dependabot[bot] Oct 18, 2023
bd590ca
test: wait until plugin is ready (#188)
ReenigneArcher Oct 18, 2023
f311246
ci: use tagged setup python action (#191)
ReenigneArcher Oct 24, 2023
328c938
build(deps): bump plexhints and plexapi-backport (#198)
ReenigneArcher Nov 6, 2023
15099a5
ci: use commit hash for setup python action (#193)
ReenigneArcher Nov 6, 2023
a1e1847
Fix AlertListener on IPv6-aware hosts (#201)
zdimension Nov 7, 2023
f32a6c9
fix: Add error handling around update_plex_item to prevent hang (#202)
zdimension Nov 7, 2023
4feddda
Add error handling and logging for Youtube-DL (#200)
zdimension Nov 7, 2023
09f5253
build(deps): bump LizardByte/plexhints from 0.1.2 to 0.1.3 (#205)
dependabot[bot] Nov 8, 2023
d7cebc8
build(deps-dev): bump plexhints from 0.1.2 to 0.1.3 (#206)
dependabot[bot] Nov 8, 2023
dadf374
feat: Add support for passing session cookies to Youtube-DL (#203)
zdimension Nov 8, 2023
d04fad4
fix: Move skip check before call to Youtube-DL (#204)
zdimension Nov 8, 2023
2aa84ca
New Crowdin updates (#194)
ReenigneArcher Nov 8, 2023
45ce809
build(deps): bump @fontsource/open-sans from 5.0.15 to 5.0.17 (#190)
dependabot[bot] Nov 8, 2023
b463749
fix: disable auto-reload since it is not needed and only harms perf (…
zdimension Nov 8, 2023
af7462c
fix: use correct types for plex item typehints (#211)
ReenigneArcher Nov 11, 2023
ccee561
feat: Prefetch items from ThemerrDB, and differentiate items with no …
zdimension Nov 11, 2023
3c4c02b
New Babel Updates (#212)
LizardByte-bot Nov 11, 2023
308d1fa
New Crowdin updates (#213)
ReenigneArcher Nov 11, 2023
b9dc77c
fix: fix css (#214)
zdimension Nov 12, 2023
9057aed
build(deps): bump youtube-dl (#164)
ReenigneArcher Nov 13, 2023
aba0560
fix(ui): progress bar will now fill to max (#217)
ReenigneArcher Nov 13, 2023
400052c
feat: allow adding cookies from the UI directly and fix the ytdl bug …
zdimension Nov 14, 2023
5514c6b
build(deps): bump plexapi-backport[alert] from 4.15.5 to 4.15.6 (#219)
dependabot[bot] Nov 15, 2023
1891d60
fix: correct issue where database_cache may be updated in parallel (#…
ReenigneArcher Nov 15, 2023
e2f5240
fix(ui): use correct action button for themerr provided items (#220)
ReenigneArcher Nov 16, 2023
7f3dd86
fix(ui): correct issue where themerr-provided field may not be accura…
ReenigneArcher Nov 16, 2023
4f9ffa3
New Babel Updates (#222)
LizardByte-bot Nov 16, 2023
dfda394
fix(ui): improve speed of dashboard by caching data (#224)
ReenigneArcher Nov 17, 2023
12c78b8
New Babel Updates (#225)
LizardByte-bot Nov 17, 2023
1a91752
fix: don't update locked fields + unlock fields after update (#208)
zdimension Nov 18, 2023
eb07188
fix: use item original title if present (#226)
zdimension Nov 20, 2023
3180e9c
fix: disable Plex plugin framework sandbox and add back all missing b…
zdimension Nov 21, 2023
25a1d83
ci: update global workflows (#230)
LizardByte-bot Nov 24, 2023
4172903
chore: update LizardByte actions (#231)
ReenigneArcher Nov 28, 2023
673fe04
fix: remove unused youtube params (#232)
ReenigneArcher Nov 29, 2023
64f6a71
New Crowdin updates (#223)
ReenigneArcher Nov 29, 2023
7299600
build(deps): bump @fortawesome/fontawesome-free from 6.4.2 to 6.5.0 (…
dependabot[bot] Nov 29, 2023
f94afde
docs: update v0.3.0 changelog (#235)
ReenigneArcher Nov 30, 2023
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
7 changes: 7 additions & 0 deletions .github/workflows/CI.yml
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,12 @@ jobs:
python -m pip install --upgrade --target=./Contents/Libraries/Shared -r \
requirements.txt --no-warn-script-location

- name: Install npm packages
working-directory: Themerr-plex.bundle
run: |
npm install
mv ./node_modules ./Contents/Resources/web

- name: Build plist
working-directory: Themerr-plex.bundle
env:
Expand Down Expand Up @@ -89,6 +95,7 @@ jobs:
!**/Themerr-plex.bundle/Dockerfile
!**/Themerr-plex.bundle/docs
!**/Themerr-plex.bundle/scripts
!**/Themerr-plex.bundle/tests

- name: Package Release
shell: bash
Expand Down
137 changes: 137 additions & 0 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,137 @@
---
# This action is centrally managed in https://github.com/<organization>/.github/
# Don't make changes to this file in this repo as they will be overwritten with changes made to the same file in
# the above-mentioned repo.

# This workflow will analyze all supported languages in the repository using CodeQL Analysis.

name: "CodeQL"

on:
push:
branches: ["master", "nightly"]
pull_request:
branches: ["master", "nightly"]
schedule:
- cron: '00 12 * * 0' # every Sunday at 12:00 UTC

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
languages:
name: Get language matrix
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.lang.outputs.result }}
continue: ${{ steps.continue.outputs.result }}
steps:
- name: Get repo languages
uses: actions/github-script@v6
id: lang
with:
script: |
// CodeQL supports ['cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby', 'swift']
// Use only 'java' to analyze code written in Java, Kotlin or both
// Use only 'javascript' to analyze code written in JavaScript, TypeScript or both
// Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support
const supported_languages = ['cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby', 'swift']

const remap_languages = {
'c++': 'cpp',
'c#': 'csharp',
'kotlin': 'java',
'typescript': 'javascript',
}

const repo = context.repo
const response = await github.rest.repos.listLanguages(repo)
let matrix = {
"include": []
}

for (let [key, value] of Object.entries(response.data)) {
// remap language
if (remap_languages[key.toLowerCase()]) {
console.log(`Remapping language: ${key} to ${remap_languages[key.toLowerCase()]}`)
key = remap_languages[key.toLowerCase()]
}
if (supported_languages.includes(key.toLowerCase()) &&
!matrix['include'].includes({"language": key.toLowerCase()})) {
console.log(`Found supported language: ${key}`)
matrix['include'].push({"language": key.toLowerCase()})
}
}

// print languages
console.log(`matrix: ${JSON.stringify(matrix)}`)

return matrix

- name: Continue
uses: actions/github-script@v6
id: continue
with:
script: |
// if matrix['include'] is an empty list return false, otherwise true
const matrix = ${{ steps.lang.outputs.result }} // this is already json encoded

if (matrix['include'].length == 0) {
return false
} else {
return true
}

analyze:
name: Analyze
if: ${{ needs.languages.outputs.continue == 'true' }}
needs: [languages]
runs-on: ${{ (matrix.language == 'swift' && 'macos-latest') || 'ubuntu-latest' }}
timeout-minutes: ${{ (matrix.language == 'swift' && 120) || 360 }}
permissions:
actions: read
contents: read
security-events: write

strategy:
fail-fast: false
matrix: ${{ fromJson(needs.languages.outputs.matrix) }}

steps:
- name: Checkout repository
uses: actions/checkout@v3
with:
submodules: recursive

# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v2
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.

# yamllint disable-line rule:line-length
# For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
# queries: security-extended,security-and-quality

# Pre autobuild
# create a file named .codeql-prebuild-${{ matrix.language }}.sh in the root of your repository
- name: Prebuild
run: |
# check if .qodeql-prebuild-${{ matrix.language }}.sh exists
if [ -f "./.codeql-prebuild-${{ matrix.language }}.sh" ]; then
echo "Running .codeql-prebuild-${{ matrix.language }}.sh"
./.codeql-prebuild-${{ matrix.language }}.sh
fi

# Autobuild attempts to build any compiled languages (C/C++, C#, Go, Java, or Swift).
- name: Autobuild
uses: github/codeql-action/autobuild@v2

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2
with:
category: "/language:${{matrix.language}}"
75 changes: 75 additions & 0 deletions .github/workflows/localize.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
---
name: localize

on:
push:
branches: [nightly]
paths: # prevents workflow from running unless these files change
- '.github/workflows/localize.yml'
- 'Contents/Strings/Themerr-plex.po'
- 'Contents/Code/**.py'
- 'Contents/Resources/web/templates/**'
workflow_dispatch:

jobs:
localize:
name: Update Localization
runs-on: ubuntu-latest

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

- name: Install Python 2.7
uses: LizardByte/.github/actions/setup_python2@nightly

- name: Set up Python Dependencies
run: |
python -m pip install --upgrade pip setuptools requests
python -m pip install -r requirements.txt # requests is required to install python-plexapi

- name: Update Strings
run: |
python ./scripts/_locale.py --extract

- name: git diff
run: |
# disable the pager
git config --global pager.diff false

# print the git diff
git diff Contents/Strings/themerr-plex.po

# set the variable with minimal output, replacing `\t` with ` `
OUTPUT=$(git diff --numstat Contents/Strings/themerr-plex.po | sed -e "s#\t# #g")
echo "git_diff=${OUTPUT}" >> $GITHUB_ENV

- name: git reset
if: ${{ env.git_diff == '1 1 Contents/Strings/themerr-plex.po' }} # only run if more than 1 line changed
run: |
git reset --hard

- name: Get current date
id: date
run: echo "date=$(date +'%Y-%m-%d')" >> $GITHUB_OUTPUT

- name: Create/Update Pull Request
uses: peter-evans/create-pull-request@v5
with:
add-paths: |
Contents/Strings/*.po
token: ${{ secrets.GH_BOT_TOKEN }} # must trigger PR tests
commit-message: New localization template
branch: localize/update
delete-branch: true
base: nightly
title: New Babel Updates
body: |
Update report
- Updated ${{ steps.date.outputs.date }}
- Auto-generated by [create-pull-request][1]

[1]: https://github.com/peter-evans/create-pull-request
labels: |
babel
l10n
8 changes: 7 additions & 1 deletion .github/workflows/python-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,13 @@ jobs:
python -m pip --no-python-version-warning --disable-pip-version-check install --upgrade \
pip setuptools requests
python -m pip --no-python-version-warning --disable-pip-version-check install -r requirements-dev.txt
python -m pip --no-python-version-warning --disable-pip-version-check install -r requirements.txt
python -m pip --no-python-version-warning --disable-pip-version-check install \
--target=./Contents/Libraries/Shared -r requirements.txt --no-warn-script-location

- name: Build plist
shell: bash
run: |
python ./scripts/build_plist.py

- name: Test with pytest
shell: bash # our Python 2.7 setup action doesn't support PowerShell
Expand Down
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -168,3 +168,7 @@ plexhints-temp

# Remove python modules
Contents/Libraries/Shared/

# npm
node_modules/
package-lock.json
3 changes: 3 additions & 0 deletions .readthedocs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@ build:
os: ubuntu-20.04
tools:
python: "2.7"
jobs:
pre_build:
- python ./scripts/build_plist.py

# Build documentation in the docs/ directory with Sphinx
sphinx:
Expand Down
20 changes: 20 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,25 @@
# Changelog

## [0.3.0] - 2023-08-19
**Added**
- Option to enable/disable support for Plex Movie agent - (enabled by default)
- Option to update themes on a schedule - (enabled by default)
- Option to download themes for collections - (enabled by default)
- Option to update collection metadata (art, poster, and summary) -
(enabled by default for legacy agents, disabled for Plex Movie agent)
- Options to remove unused media (themes, art, posters) on update -
(enabled by default for themes, disabled for art and posters)
- Themerr icon
- Version is now printed to the log on startup
- Version is now displayed in the Plex plugin menu
- Web UI which shows the completion percentage of theme songs in the Plex libraries

**Fixed**
- Themerr-plex will now skip upload of media if the existing media is the same
- Themerr-plex is now categorized as a Utility plugin instead of Music
- Refactored code to use common methods where possible
- Use TMDB api to convert IMDB ids to TMDB ids

## [0.2.0] - 2023-07-31
**Added**
- Add option to prefer MPEG AAC audio codec over Opus
Expand Down
Loading