5 |
6 | export { Config }
7 | export default plugin
8 |
--------------------------------------------------------------------------------
/app/static/node_modules/tailwindcss/utilities.css:
--------------------------------------------------------------------------------
1 | @tailwind utilities;
2 |
--------------------------------------------------------------------------------
/app/static/node_modules/tailwindcss/variants.css:
--------------------------------------------------------------------------------
1 | @tailwind variants;
2 |
--------------------------------------------------------------------------------
/app/static/node_modules/util-deprecate/History.md:
--------------------------------------------------------------------------------
1 |
2 | 1.0.2 / 2015-10-07
3 | ==================
4 |
5 | * use try/catch when checking `localStorage` (#3, @kumavis)
6 |
7 | 1.0.1 / 2014-11-25
8 | ==================
9 |
10 | * browser: use `console.warn()` for deprecation calls
11 | * browser: more jsdocs
12 |
13 | 1.0.0 / 2014-04-30
14 | ==================
15 |
16 | * initial commit
17 |
--------------------------------------------------------------------------------
/app/static/node_modules/util-deprecate/node.js:
--------------------------------------------------------------------------------
1 |
2 | /**
3 | * For Node.js, simply re-export the core `util.deprecate` function.
4 | */
5 |
6 | module.exports = require('util').deprecate;
7 |
--------------------------------------------------------------------------------
/app/static/node_modules/yaml/browser/dist/legacy-exports.js:
--------------------------------------------------------------------------------
1 | export { b as binary, f as floatTime, i as intTime, o as omap, p as pairs, s as set, t as timestamp, c as warnFileDeprecation } from './warnings-df54cb69.js';
2 | import './PlainValue-b8036b75.js';
3 | import './resolveSeq-492ab440.js';
4 |
--------------------------------------------------------------------------------
/app/static/node_modules/yaml/browser/dist/package.json:
--------------------------------------------------------------------------------
1 | { "type": "module" }
2 |
--------------------------------------------------------------------------------
/app/static/node_modules/yaml/browser/dist/util.js:
--------------------------------------------------------------------------------
1 | export { l as findPair, g as parseMap, h as parseSeq, k as stringifyNumber, c as stringifyString, t as toJSON } from './resolveSeq-492ab440.js';
2 | export { T as Type, i as YAMLError, o as YAMLReferenceError, g as YAMLSemanticError, Y as YAMLSyntaxError, f as YAMLWarning } from './PlainValue-b8036b75.js';
3 |
--------------------------------------------------------------------------------
/app/static/node_modules/yaml/browser/index.js:
--------------------------------------------------------------------------------
1 | module.exports = require('./dist').YAML
2 |
--------------------------------------------------------------------------------
/app/static/node_modules/yaml/browser/map.js:
--------------------------------------------------------------------------------
1 | module.exports = require('./dist/types').YAMLMap
2 | require('./dist/legacy-exports').warnFileDeprecation(__filename)
3 |
--------------------------------------------------------------------------------
/app/static/node_modules/yaml/browser/pair.js:
--------------------------------------------------------------------------------
1 | module.exports = require('./dist/types').Pair
2 | require('./dist/legacy-exports').warnFileDeprecation(__filename)
3 |
--------------------------------------------------------------------------------
/app/static/node_modules/yaml/browser/parse-cst.js:
--------------------------------------------------------------------------------
1 | module.exports = require('./dist/parse-cst').parse
2 |
--------------------------------------------------------------------------------
/app/static/node_modules/yaml/browser/scalar.js:
--------------------------------------------------------------------------------
1 | module.exports = require('./dist/types').Scalar
2 | require('./dist/legacy-exports').warnFileDeprecation(__filename)
3 |
--------------------------------------------------------------------------------
/app/static/node_modules/yaml/browser/schema.js:
--------------------------------------------------------------------------------
1 | const types = require('./dist/types')
2 | const util = require('./dist/util')
3 |
4 | module.exports = types.Schema
5 | module.exports.nullOptions = types.nullOptions
6 | module.exports.strOptions = types.strOptions
7 | module.exports.stringify = util.stringifyString
8 |
9 | require('./dist/legacy-exports').warnFileDeprecation(__filename)
10 |
--------------------------------------------------------------------------------
/app/static/node_modules/yaml/browser/seq.js:
--------------------------------------------------------------------------------
1 | module.exports = require('./dist/types').YAMLSeq
2 | require('./dist/legacy-exports').warnFileDeprecation(__filename)
3 |
--------------------------------------------------------------------------------
/app/static/node_modules/yaml/browser/types.js:
--------------------------------------------------------------------------------
1 | module.exports = require('./dist/types')
2 |
--------------------------------------------------------------------------------
/app/static/node_modules/yaml/browser/types/binary.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 | Object.defineProperty(exports, '__esModule', { value: true })
3 |
4 | const legacy = require('../dist/legacy-exports')
5 | exports.binary = legacy.binary
6 | exports.default = [exports.binary]
7 |
8 | legacy.warnFileDeprecation(__filename)
9 |
--------------------------------------------------------------------------------
/app/static/node_modules/yaml/browser/types/omap.js:
--------------------------------------------------------------------------------
1 | const legacy = require('../dist/legacy-exports')
2 | module.exports = legacy.omap
3 | legacy.warnFileDeprecation(__filename)
4 |
--------------------------------------------------------------------------------
/app/static/node_modules/yaml/browser/types/pairs.js:
--------------------------------------------------------------------------------
1 | const legacy = require('../dist/legacy-exports')
2 | module.exports = legacy.pairs
3 | legacy.warnFileDeprecation(__filename)
4 |
--------------------------------------------------------------------------------
/app/static/node_modules/yaml/browser/types/set.js:
--------------------------------------------------------------------------------
1 | const legacy = require('../dist/legacy-exports')
2 | module.exports = legacy.set
3 | legacy.warnFileDeprecation(__filename)
4 |
--------------------------------------------------------------------------------
/app/static/node_modules/yaml/browser/util.js:
--------------------------------------------------------------------------------
1 | module.exports = require('./dist/util')
2 |
--------------------------------------------------------------------------------
/app/static/node_modules/yaml/index.js:
--------------------------------------------------------------------------------
1 | module.exports = require('./dist').YAML
2 |
--------------------------------------------------------------------------------
/app/static/node_modules/yaml/map.js:
--------------------------------------------------------------------------------
1 | module.exports = require('./dist/types').YAMLMap
2 | require('./dist/legacy-exports').warnFileDeprecation(__filename)
3 |
--------------------------------------------------------------------------------
/app/static/node_modules/yaml/pair.js:
--------------------------------------------------------------------------------
1 | module.exports = require('./dist/types').Pair
2 | require('./dist/legacy-exports').warnFileDeprecation(__filename)
3 |
--------------------------------------------------------------------------------
/app/static/node_modules/yaml/parse-cst.js:
--------------------------------------------------------------------------------
1 | module.exports = require('./dist/parse-cst').parse
2 |
--------------------------------------------------------------------------------
/app/static/node_modules/yaml/scalar.js:
--------------------------------------------------------------------------------
1 | module.exports = require('./dist/types').Scalar
2 | require('./dist/legacy-exports').warnFileDeprecation(__filename)
3 |
--------------------------------------------------------------------------------
/app/static/node_modules/yaml/schema.js:
--------------------------------------------------------------------------------
1 | const types = require('./dist/types')
2 | const util = require('./dist/util')
3 |
4 | module.exports = types.Schema
5 | module.exports.nullOptions = types.nullOptions
6 | module.exports.strOptions = types.strOptions
7 | module.exports.stringify = util.stringifyString
8 |
9 | require('./dist/legacy-exports').warnFileDeprecation(__filename)
10 |
--------------------------------------------------------------------------------
/app/static/node_modules/yaml/seq.js:
--------------------------------------------------------------------------------
1 | module.exports = require('./dist/types').YAMLSeq
2 | require('./dist/legacy-exports').warnFileDeprecation(__filename)
3 |
--------------------------------------------------------------------------------
/app/static/node_modules/yaml/types/binary.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 | Object.defineProperty(exports, '__esModule', { value: true })
3 |
4 | const legacy = require('../dist/legacy-exports')
5 | exports.binary = legacy.binary
6 | exports.default = [exports.binary]
7 |
8 | legacy.warnFileDeprecation(__filename)
9 |
--------------------------------------------------------------------------------
/app/static/node_modules/yaml/types/omap.js:
--------------------------------------------------------------------------------
1 | const legacy = require('../dist/legacy-exports')
2 | module.exports = legacy.omap
3 | legacy.warnFileDeprecation(__filename)
4 |
--------------------------------------------------------------------------------
/app/static/node_modules/yaml/types/pairs.js:
--------------------------------------------------------------------------------
1 | const legacy = require('../dist/legacy-exports')
2 | module.exports = legacy.pairs
3 | legacy.warnFileDeprecation(__filename)
4 |
--------------------------------------------------------------------------------
/app/static/node_modules/yaml/types/set.js:
--------------------------------------------------------------------------------
1 | const legacy = require('../dist/legacy-exports')
2 | module.exports = legacy.set
3 | legacy.warnFileDeprecation(__filename)
4 |
--------------------------------------------------------------------------------
/app/static/watch-tailwind.sh:
--------------------------------------------------------------------------------
1 | npx tailwindcss -i src/style.css -o css/main.css --watch
2 |
3 |
--------------------------------------------------------------------------------
/app/static/wizarr-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wizarrrr/wizarr/53c0c257823db7a3a75a4e96185bdfd9f92536c9/app/static/wizarr-logo.png
--------------------------------------------------------------------------------
/app/templates/admin/new-users.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wizarrrr/wizarr/53c0c257823db7a3a75a4e96185bdfd9f92536c9/app/templates/admin/new-users.html
--------------------------------------------------------------------------------
/app/templates/setup/server_details.html:
--------------------------------------------------------------------------------
1 | {% extends "base.html" %}
2 |
3 | {% block title %}
4 | Setup Wizarr
5 | {% endblock %}
6 |
7 | {% block main %}
8 |
9 |
10 | {% include "partials/server_form.html" %}
11 |
12 | {% endblock %}
--------------------------------------------------------------------------------
/app/templates/verify-server.html:
--------------------------------------------------------------------------------
1 | {% extends "base.html" %}
2 |
3 | {% block title %}
4 | Setup Wizarr
5 | {% endblock %}
6 |
7 | {% block main %}
8 |
9 |
10 | {% include "settings/partials/server_settings.html" %}
11 |
12 | {% endblock %}
--------------------------------------------------------------------------------
/app/translations/ca/LC_MESSAGES/messages.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wizarrrr/wizarr/53c0c257823db7a3a75a4e96185bdfd9f92536c9/app/translations/ca/LC_MESSAGES/messages.mo
--------------------------------------------------------------------------------
/app/translations/de/LC_MESSAGES/messages.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wizarrrr/wizarr/53c0c257823db7a3a75a4e96185bdfd9f92536c9/app/translations/de/LC_MESSAGES/messages.mo
--------------------------------------------------------------------------------
/app/translations/es/LC_MESSAGES/messages.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wizarrrr/wizarr/53c0c257823db7a3a75a4e96185bdfd9f92536c9/app/translations/es/LC_MESSAGES/messages.mo
--------------------------------------------------------------------------------
/app/translations/fr/LC_MESSAGES/messages.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wizarrrr/wizarr/53c0c257823db7a3a75a4e96185bdfd9f92536c9/app/translations/fr/LC_MESSAGES/messages.mo
--------------------------------------------------------------------------------
/app/translations/is/LC_MESSAGES/messages.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wizarrrr/wizarr/53c0c257823db7a3a75a4e96185bdfd9f92536c9/app/translations/is/LC_MESSAGES/messages.mo
--------------------------------------------------------------------------------
/app/translations/it/LC_MESSAGES/messages.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wizarrrr/wizarr/53c0c257823db7a3a75a4e96185bdfd9f92536c9/app/translations/it/LC_MESSAGES/messages.mo
--------------------------------------------------------------------------------
/app/translations/lt/LC_MESSAGES/messages.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wizarrrr/wizarr/53c0c257823db7a3a75a4e96185bdfd9f92536c9/app/translations/lt/LC_MESSAGES/messages.mo
--------------------------------------------------------------------------------
/app/translations/nb_NO/LC_MESSAGES/messages.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wizarrrr/wizarr/53c0c257823db7a3a75a4e96185bdfd9f92536c9/app/translations/nb_NO/LC_MESSAGES/messages.mo
--------------------------------------------------------------------------------
/app/translations/nl/LC_MESSAGES/messages.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wizarrrr/wizarr/53c0c257823db7a3a75a4e96185bdfd9f92536c9/app/translations/nl/LC_MESSAGES/messages.mo
--------------------------------------------------------------------------------
/app/translations/pl/LC_MESSAGES/messages.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wizarrrr/wizarr/53c0c257823db7a3a75a4e96185bdfd9f92536c9/app/translations/pl/LC_MESSAGES/messages.mo
--------------------------------------------------------------------------------
/app/translations/pt/LC_MESSAGES/messages.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wizarrrr/wizarr/53c0c257823db7a3a75a4e96185bdfd9f92536c9/app/translations/pt/LC_MESSAGES/messages.mo
--------------------------------------------------------------------------------
/app/translations/pt_BR/LC_MESSAGES/messages.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wizarrrr/wizarr/53c0c257823db7a3a75a4e96185bdfd9f92536c9/app/translations/pt_BR/LC_MESSAGES/messages.mo
--------------------------------------------------------------------------------
/app/translations/sv/LC_MESSAGES/messages.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wizarrrr/wizarr/53c0c257823db7a3a75a4e96185bdfd9f92536c9/app/translations/sv/LC_MESSAGES/messages.mo
--------------------------------------------------------------------------------
/app/translations/zh_Hans/LC_MESSAGES/messages.mo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wizarrrr/wizarr/53c0c257823db7a3a75a4e96185bdfd9f92536c9/app/translations/zh_Hans/LC_MESSAGES/messages.mo
--------------------------------------------------------------------------------
/babel.cfg:
--------------------------------------------------------------------------------
1 | [python: app/**.py]
2 | [jinja2: app/templates/**.html]
3 | ;extensions=jinja2.ext.autoescape,jinja2.ext.with_
--------------------------------------------------------------------------------
/docker-compose.yml:
--------------------------------------------------------------------------------
1 | services:
2 | wizarr:
3 | build: .
4 | ports:
5 | - 5690:5690
6 | volumes:
7 | - ./test-data:/data/database
8 | environment:
9 | - TZ=Europe/London
--------------------------------------------------------------------------------
/docs/support/discord.md:
--------------------------------------------------------------------------------
1 | ---
2 | description: Join our discord server
3 | ---
4 |
5 | # Discord
6 |
--------------------------------------------------------------------------------
/migrations/README:
--------------------------------------------------------------------------------
1 | Single-database configuration for Flask.
2 |
--------------------------------------------------------------------------------
/requirements.txt:
--------------------------------------------------------------------------------
1 | Flask
2 | plexapi
3 | Peewee
4 | python-dotenv
5 | gunicorn
6 | flask_session
7 | flask-babel
8 | packaging
9 | boto3
10 | cachetools
11 | Flask-APScheduler
12 | requests
13 | flask-htmx
14 | setuptools>=65.5.1 # not directly required, pinned by Snyk to avoid a vulnerability
--------------------------------------------------------------------------------
/run.py:
--------------------------------------------------------------------------------
1 | from app import create_app
2 |
3 | app = create_app()
4 |
5 | if __name__ == "__main__":
6 | app.run()
7 |
--------------------------------------------------------------------------------
/screenshots/accept_invite.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wizarrrr/wizarr/53c0c257823db7a3a75a4e96185bdfd9f92536c9/screenshots/accept_invite.jpeg
--------------------------------------------------------------------------------
/screenshots/home.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wizarrrr/wizarr/53c0c257823db7a3a75a4e96185bdfd9f92536c9/screenshots/home.jpeg
--------------------------------------------------------------------------------
/screenshots/invitations.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wizarrrr/wizarr/53c0c257823db7a3a75a4e96185bdfd9f92536c9/screenshots/invitations.jpeg
--------------------------------------------------------------------------------
/screenshots/settings.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wizarrrr/wizarr/53c0c257823db7a3a75a4e96185bdfd9f92536c9/screenshots/settings.jpeg
--------------------------------------------------------------------------------
/screenshots/users.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wizarrrr/wizarr/53c0c257823db7a3a75a4e96185bdfd9f92536c9/screenshots/users.jpeg
--------------------------------------------------------------------------------
/screenshots/wizard.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wizarrrr/wizarr/53c0c257823db7a3a75a4e96185bdfd9f92536c9/screenshots/wizard.jpeg
--------------------------------------------------------------------------------
/wizard_steps/emby/01_download.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Join & download Emby"
3 | ---
4 |
5 | ## {{ _("Join & Download Emby for this device") }}
6 |
7 | {{ _("Great news! You now have access to our media collection.") }}
8 |
9 | {{ _("Planning on watching films on this device? Download the Emby app first.") }}
10 |
11 | [{{ _("Download") }}](https://emby.media/download.html){target=_blank .btn}
12 |
--------------------------------------------------------------------------------
/wizard_steps/emby/03_requests.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Automatic requests"
3 | requires: [overseerr_url]
4 | ---
5 |
6 | ### {{ _("Automatic media requests") }}
7 |
8 | {{ _("Use the request system to ask for films or shows that aren’t in the library yet.") }}
9 |
10 | [{{ _("Open Requests") }}]({{ overseerr_url }}){:target=_blank .btn}
11 |
--------------------------------------------------------------------------------
/wizard_steps/emby/04_discord.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Discord community"
3 | requires: [discord_id]
4 | ---
5 |
6 |
10 |
--------------------------------------------------------------------------------
/wizard_steps/emby/99_tips.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Tips for the best experience"
3 | ---
4 |
5 | ## 🎞 {{ _("Get the best quality") }}
6 |
7 | 1. **{{ _("Set streaming quality to original") }}** – Settings → Playback
8 | 2. **{{ _("Enable hardware decoding") }}** if your device supports it for smoother 4K.
9 | 3. **{{ _("Prefer Ethernet over Wi-Fi") }}** on smart-TVs.
10 |
11 | *Enjoy the show!* 🍿
12 |
--------------------------------------------------------------------------------
/wizard_steps/jellyfin/03_requests.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Automatic requests"
3 | requires: [overseerr_url]
4 | ---
5 |
6 | ### {{ _("Automatic media requests") }}
7 |
8 | {{ _("Use the request system to ask for films or shows that aren’t in the library yet.") }}
9 |
10 | [{{ _("Open Requests") }}]({{ overseerr_url }}){:target=_blank .btn}
11 |
--------------------------------------------------------------------------------
/wizard_steps/jellyfin/04_discord.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Discord community"
3 | requires: [discord_id]
4 | ---
5 |
6 |
10 |
--------------------------------------------------------------------------------
/wizard_steps/plex/03_requests.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Automatic requests"
3 | requires: [overseerr_url]
4 | ---
5 |
6 | ### {{ _("Automatic media requests") }}
7 |
8 | {{ _("Can’t find a title? Use our request system — it’ll grab the film or episode automatically and add it to the library.") }}
9 |
10 | [{{ _("Open Requests") }}]({{ overseerr_url }}){:target=_blank .btn}
11 |
--------------------------------------------------------------------------------
/wizard_steps/plex/04_discord.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Discord community"
3 | requires: [discord_id]
4 | ---
5 |
6 |
10 |
--------------------------------------------------------------------------------