archmonger / conreq Goto Github PK
View Code? Open in Web Editor NEWA content requesting platform.
Home Page: https://archmonger.github.io/Conreq/
License: GNU General Public License v3.0
A content requesting platform.
Home Page: https://archmonger.github.io/Conreq/
License: GNU General Public License v3.0
I have always separated Animes and TV-shows with two separate Sonarr instances as well as a Radarr and Animarr instance for movies. This helps me to keep everything better-organized, and it keeps the super slow databases faster.
It would be fantastic if this could be added. I am aware that this request might be quite personalized, and not a lot of people do it this way, but honestly, I don't see a drawback for other people, and only a potential upside for some individuals.
Create Django unit tests for Conreq Core
Automate Django unit tests via GH
Look into other automated code analysis GH workflows
Describe the bug
Fresh Install via docker (unraid template)
first start opend web page, i entered the admin account details, sonarr and radarr data. and then i have a never ending loading circle.
i retried it and restartet but always the same
To Reproduce
fresh install docker container
Expected behavior
^^
Additional context
log throws no errors,
[s6-init] making user provided files available at /var/run/s6/etc...exited 0.
[s6-init] ensuring user provided files have correct perms...exited 0.
[fix-attrs.d] applying ownership & permissions fixes...
[fix-attrs.d] done.
[cont-init.d] executing container initialization scripts...
[cont-init.d] 00-start-container: executing...
----------------------------------------------------------------------
ENVIRONMENT
----------------------------------------------------------------------
PUID=99
PGID=100
2
TZ=Europe/Berlin
----------------------------------------------------------------------
Executing usermod...
usermod: no changes
Applying permissions to /config
[cont-init.d] 00-start-container: exited 0.
[cont-init.d] 01-config-app: executing...
Operations to perform:
Apply all migrations: admin, auth, contenttypes, issue_reporting, server_settings, sessions, user_requests
Running migrations:
No migrations to apply.
0 static files symlinked to '/app/static', 174 unmodified, 84 post-processed.
Compressing... done
Compressed 9 block(s) from 9 template(s) for 0 context(s).
[cont-init.d] 01-config-app: exited 0.
[cont-init.d] done.
[services.d] starting services
[services.d] done.
Compressing... done
Compressed 9 block(s) from 9 template(s) for 0 context(s).
[cont-init.d] 01-config-app: exited 0.
[cont-init.d] done.
[services.d] starting services
[services.d] done.
INFO daphne.cli: Starting server at tcp:port=8000:interface=0.0.0.0
INFO daphne.server: HTTP/2 support enabled
INFO daphne.server: Configuring endpoint tcp:port=8000:interface=0.0.0.0
INFO daphne.server: Listening on TCP address 0.0.0.0:8000
INFO daphne.cli: Starting server at tcp:port=8000:interface=0.0.0.0
INFO daphne.server: HTTP/2 support enabled
INFO daphne.server: Configuring endpoint tcp:port=8000:interface=0.0.0.0
INFO daphne.server: Listening on TCP address 0.0.0.0:8000
Screenshots
Latest docker image
Desktop
Replace all bare excepts with an except Exception:
Handle this on a per file basis
Add a docstring to all modules and have default module docstrings within the start_app
and start_package
commands.
Currently, the invite button does not copy to clipboard due to Safari limitations. Need to attempt to find a workaround.
Did you by accident include your tmdb api key ?
Conreq/conreq/core/content_discovery.py
Line 39 in 2b0841d
When adding a movie through Conreq, a confirmation is sent no matter what.
If in the case of Radarr skyhook going down (proxy/cache for tvdb) Conreq says it was successful in the toast notificaiton but does not actually add it to Radarr.
v0.20.22
Develop
Linux/Unraid/Docker
Not Applicable
Chrome
No response
No response
Store TMDB entries in the database in order to avoid pulling each entry from cache.
Currently pulling them from cache causes slow "My/All Issues" load when multiple items exist
Implementation ideas
After grabbing the Arr database via API, do the following:
Describe the bug
Static URL's are not being generated with the BASE_URL part added. URL's are being generated as "src=/static/....." instead of the expected "src=/BASE_URL/static/.....".
Obviously the access log doesn't show the static URL's are being hit as they're not passed through the reverse proxy.
To Reproduce
Expected behavior
Base URL to be prepended to all URL's on the page and Conreq to render properly.
Additional context
Issue occurs with both Selfhosters and Hotio's containers. Occurs on both "latest" and "develop" tags.
Conreq Version
Desktop
Ensure the Sonarr/Radarr URL can be accessed prior to saving these settings to the DB.
Additionally, ensure /
does not result in a 304
(user forgot to input a base URL).
Replace the background task generic with specific huey functions. For example, background_task(cache.set_many, missing_keys, cache_duration)
can be replaced with a more verbosely named function.
When sorting on the user management table, it destroys the objects ruining all click events.
Fix it using this
You have the logs directory in the gitignore file currently, but the migrations won't run unless this directory exists. You should add step in the Readme to create this directory.
Describe the bug
File "/app/conreq/core/discover/urls.py", line 2, in <module>
from . import views
File "/app/conreq/core/discover/views.py", line 14, in <module>
from titlecase import titlecase
File "/usr/lib/python3.8/site-packages/titlecase/__init__.py", line 29, in <module>
INLINE_PERIOD = regex.compile(r'[\p{Letter}][.][\p{Letter}]', regex.I)
File "/usr/lib/python3.8/re.py", line 252, in compile
return _compile(pattern, flags)
File "/usr/lib/python3.8/re.py", line 304, in _compile
p = sre_compile.compile(pattern, flags)
File "/usr/lib/python3.8/sre_compile.py", line 764, in compile
p = sre_parse.parse(p, flags)
File "/usr/lib/python3.8/sre_parse.py", line 948, in parse
p = _parse_sub(source, state, flags & SRE_FLAG_VERBOSE, 0)
File "/usr/lib/python3.8/sre_parse.py", line 443, in _parse_sub
itemsappend(_parse(source, state, verbose, nested + 1,
File "/usr/lib/python3.8/sre_parse.py", line 554, in _parse
code1 = _class_escape(source, this)
File "/usr/lib/python3.8/sre_parse.py", line 349, in _class_escape
raise source.error('bad escape %s' % escape, len(escape))
re.error: bad escape \p at position 1
Additional context
See ppannuto/python-titlecase#82
It would be nice if you supported Lidarr for requesting music. It would also be nice if you supported LazyLibrarian for requesting ebooks, audiobooks, magazines and comic books. Jellyfin has full support for audiobooks, ebooks, magazines and comic books.
One thing to keep in mind for the future would be supporting Readarr once it gets further beyond alpha development for ebooks/etc.
Describe the bug
All Requests will not load.
To Reproduce
Expected behavior
All requests to load
Additional context
Log block when this occurs:
TypeError: 'NoneType' object does not support item assignment
card["requested_by"] = entry.get("requested_by__username")
TypeError: 'NoneType' object does not support item assignment
ERROR conreq.utils.cache: Function info failed to execute!
Traceback (most recent call last):
File "/app/conreq/conreq/utils/cache.py", line 177, in handler
background_task(cache.set, cache_key, function_results, cache_duration)
File "/usr/lib/python3.8/site-packages/huey/api.py", line 797, in __call__
return self.huey.enqueue(self.s(*args, **kwargs))
File "/usr/lib/python3.8/site-packages/huey/api.py", line 290, in enqueue
self.storage.enqueue(self.serialize_task(task), task.priority)
File "/usr/lib/python3.8/site-packages/huey/storage.py", line 728, in enqueue
self.sql('insert into task (queue, data, priority) values (?, ?, ?)',
File "/usr/lib/python3.8/site-packages/huey/storage.py", line 671, in sql
with self.db(commit=commit) as curs:
File "/usr/lib/python3.8/contextlib.py", line 113, in __enter__
return next(self.gen)
File "/usr/lib/python3.8/site-packages/huey/storage.py", line 652, in db
if commit: cursor.execute(self.begin_sql)
sqlite3.OperationalError: database is locked
ERROR conreq.core.tmdb.base: Failed to set content attributes!
Traceback (most recent call last):
File "/app/conreq/conreq/core/tmdb/base.py", line 472, in _set_content_attributes
results["content_type"] = content_type
TypeError: 'NoneType' object does not support item assignment
Exception in thread Thread-493:
Traceback (most recent call last):
File "/usr/lib/python3.8/threading.py", line 932, in _bootstrap_inner
self.run()
File "/app/conreq/conreq/utils/multiprocessing.py", line 19, in run
self._return = self._target(*self._args, **self._kwargs)
File "/app/conreq/conreq/core/user_requests/helpers.py", line 142, in __generate_request_card
card["requested_by"] = entry.get("requested_by__username")
TypeError: 'NoneType' object does not support item assignment
ERROR django.request: Internal Server Error: /request/all_requests/
Traceback (most recent call last):
File "/usr/lib/python3.8/site-packages/asgiref/sync.py", line 458, in thread_handler
raise exc_info[1]
File "/usr/lib/python3.8/site-packages/django/core/handlers/exception.py", line 38, in inner
response = await get_response(request)
File "/usr/lib/python3.8/site-packages/django/core/handlers/base.py", line 233, in _get_response_async
response = await wrapped_callback(request, *callback_args, **callback_kwargs)
File "/usr/lib/python3.8/site-packages/asgiref/sync.py", line 423, in __call__
ret = await asyncio.wait_for(future, timeout=None)
File "/usr/lib/python3.8/asyncio/tasks.py", line 455, in wait_for
return await fut
File "/usr/lib/python3.8/site-packages/asgiref/current_thread_executor.py", line 22, in run
result = self.fn(*self.args, **self.kwargs)
File "/usr/lib/python3.8/site-packages/asgiref/sync.py", line 462, in thread_handler
return func(*args, **kwargs)
File "/usr/lib/python3.8/site-packages/django/utils/decorators.py", line 130, in _wrapped_view
response = view_func(request, *args, **kwargs)
File "/usr/lib/python3.8/site-packages/django/contrib/auth/decorators.py", line 21, in _wrapped_view
return view_func(request, *args, **kwargs)
File "/app/conreq/conreq/core/user_requests/views.py", line 106, in all_requests
all_cards = generate_requests_cards(user_requests)
File "/app/conreq/conreq/core/user_requests/helpers.py", line 204, in generate_requests_cards
content_discovery.determine_id_validity(all_cards)
File "/app/conreq/conreq/core/tmdb/base.py", line 173, in determine_id_validity
if result.__contains__("name"):
AttributeError: 'NoneType' object has no attribute '__contains__'
[2021-05-20 14:57:50,420] ERROR:huey.consumer.Worker:Worker-5:Error reading from queue
Traceback (most recent call last):
File "/usr/lib/python3.8/site-packages/huey/consumer.py", line 109, in loop
task = self.huey.dequeue()
File "/usr/lib/python3.8/site-packages/huey/api.py", line 306, in dequeue
data = self.storage.dequeue()
File "/usr/lib/python3.8/site-packages/huey/storage.py", line 738, in dequeue
curs.execute('delete from task where id = ?', (tid,))
sqlite3.OperationalError: attempt to write a readonly database
ERROR huey.consumer.Worker: Error reading from queue
Traceback (most recent call last):
File "/usr/lib/python3.8/site-packages/huey/consumer.py", line 109, in loop
task = self.huey.dequeue()
File "/usr/lib/python3.8/site-packages/huey/api.py", line 306, in dequeue
data = self.storage.dequeue()
File "/usr/lib/python3.8/site-packages/huey/storage.py", line 738, in dequeue
curs.execute('delete from task where id = ?', (tid,))
sqlite3.OperationalError: attempt to write a readonly database
[2021-05-20 14:57:50,428] ERROR:huey.consumer.Worker:Worker-2:Error reading from queue
Traceback (most recent call last):
File "/usr/lib/python3.8/site-packages/huey/consumer.py", line 109, in loop
task = self.huey.dequeue()
File "/usr/lib/python3.8/site-packages/huey/api.py", line 306, in dequeue
data = self.storage.dequeue()
File "/usr/lib/python3.8/site-packages/huey/storage.py", line 738, in dequeue
curs.execute('delete from task where id = ?', (tid,))
sqlite3.OperationalError: attempt to write a readonly database
ERROR huey.consumer.Worker: Error reading from queue
Traceback (most recent call last):
File "/usr/lib/python3.8/site-packages/huey/consumer.py", line 109, in loop
task = self.huey.dequeue()
File "/usr/lib/python3.8/site-packages/huey/api.py", line 306, in dequeue
data = self.storage.dequeue()
File "/usr/lib/python3.8/site-packages/huey/storage.py", line 738, in dequeue
curs.execute('delete from task where id = ?', (tid,))
sqlite3.OperationalError: attempt to write a readonly database
[2021-05-20 14:57:50,452] ERROR:huey.consumer.Worker:Worker-4:Error reading from queue
Traceback (most recent call last):
File "/usr/lib/python3.8/site-packages/huey/consumer.py", line 109, in loop
task = self.huey.dequeue()
File "/usr/lib/python3.8/site-packages/huey/api.py", line 306, in dequeue
data = self.storage.dequeue()
File "/usr/lib/python3.8/site-packages/huey/storage.py", line 738, in dequeue
curs.execute('delete from task where id = ?', (tid,))
sqlite3.OperationalError: attempt to write a readonly database
ERROR huey.consumer.Worker: Error reading from queue
Traceback (most recent call last):
File "/usr/lib/python3.8/site-packages/huey/consumer.py", line 109, in loop
task = self.huey.dequeue()
File "/usr/lib/python3.8/site-packages/huey/api.py", line 306, in dequeue
data = self.storage.dequeue()
File "/usr/lib/python3.8/site-packages/huey/storage.py", line 738, in dequeue
curs.execute('delete from task where id = ?', (tid,))
sqlite3.OperationalError: attempt to write a readonly database
[2021-05-20 14:57:50,516] ERROR:huey.consumer.Worker:Worker-1:Error reading from queue
Traceback (most recent call last):
File "/usr/lib/python3.8/site-packages/huey/consumer.py", line 109, in loop
task = self.huey.dequeue()
File "/usr/lib/python3.8/site-packages/huey/api.py", line 306, in dequeue
data = self.storage.dequeue()
File "/usr/lib/python3.8/site-packages/huey/storage.py", line 738, in dequeue
curs.execute('delete from task where id = ?', (tid,))
sqlite3.OperationalError: attempt to write a readonly database
ERROR huey.consumer.Worker: Error reading from queue
Traceback (most recent call last):
File "/usr/lib/python3.8/site-packages/huey/consumer.py", line 109, in loop
task = self.huey.dequeue()
File "/usr/lib/python3.8/site-packages/huey/api.py", line 306, in dequeue
data = self.storage.dequeue()
File "/usr/lib/python3.8/site-packages/huey/storage.py", line 738, in dequeue
curs.execute('delete from task where id = ?', (tid,))
sqlite3.OperationalError: attempt to write a readonly database
[2021-05-20 14:57:50,944] ERROR:huey.consumer.Worker:Worker-3:Error reading from queue
Traceback (most recent call last):
File "/usr/lib/python3.8/site-packages/huey/consumer.py", line 109, in loop
task = self.huey.dequeue()
File "/usr/lib/python3.8/site-packages/huey/api.py", line 306, in dequeue
data = self.storage.dequeue()
File "/usr/lib/python3.8/site-packages/huey/storage.py", line 738, in dequeue
curs.execute('delete from task where id = ?', (tid,))
sqlite3.OperationalError: attempt to write a readonly database
ERROR huey.consumer.Worker: Error reading from queue
Traceback (most recent call last):
File "/usr/lib/python3.8/site-packages/huey/consumer.py", line 109, in loop
task = self.huey.dequeue()
File "/usr/lib/python3.8/site-packages/huey/api.py", line 306, in dequeue
data = self.storage.dequeue()
File "/usr/lib/python3.8/site-packages/huey/storage.py", line 738, in dequeue
curs.execute('delete from task where id = ?', (tid,))
sqlite3.OperationalError: attempt to write a readonly database
Seems to be an issue with the sqlite3 db based on some of the errors it spits out.
Screenshots
N/A
Conreq Version
Desktop
Smartphone
N/A
See squidfunk/mkdocs-material#1996 for more info on how
Describe the bug
See django/channels#1587 for more info.
Or check out the Django forum post
Current workaround involves Conreq using multiple HTTP workers by default. This increases Conreq's memory footprint but allows for concurrency.
Other Issue Links
django/asgiref#218
django/daphne#350
django/channels#1582
django/channels#1626
My past self thought it was big brain to merge them into one file. Unfortunately, it was very smooth brain.
Need to split this file into two and refactor any code that relies on class ArrManager
to support that.
Allow the user to authenticate using cookie/session auth when in debug mode to make it easier to test endpoints.
Describe the bug
Various Ui issues on Samsung Browser and Edge Browser Mobile on s21 Ultra
Including icons not observing correct margins and padding on text elements in menu system
To Reproduce
Expected behavior
Correct UI Layout
Additional context
Tried to override with custom css by placing file in /static/custom.css however it was ignoring all changes
Conreq Version
Smartphone
If a user only requested specific episodes in a series, the series will always be marked as unavailable in tabs such as "My Requests".
If Conreq is within an iframe, and a page being loaded includes an infinite scroller, then the user switches to a different iframe (conreq iframe becomes hidden)....
Then the infinite scroller will INFINITELY load
See metafizzy/infinite-scroll#941
Will need to fork or PR the infinite scroller library to resolve this.
Currently a series is considered automatically resolved if all monitored episodes in the series are available.
Change this to check only episodes relevant to the particular issue ticket.
My past self over-relied on __contains__
. Most of this code should be refactored to use .get()
instead.
If the user is on mobile, show only one video with left and right arrows to the sides of it.
iFrames can't be scrolled via drag.
Is your feature request related to a problem? Please describe.
Not a problem with a bug.
Describe the feature you'd like
For Conreq to show the "status" of a downloaded show. ie; Place in the queue, Percent downloaded, Importing, Possibly even an estimated timeframe based on the estimates Sab gives (Not sure if that can be broken down per file as Sab only provides the estimation for the entire queue)
Are there any possible alternatives?
Organizr, Radarr, and Sonarr can all display some of this information, so possibly polling them for basic info could be a workaround.
Additional context
The number 1 question I am asked from users is when the requested movie/tv show will be done. Often I have 10+items in the queue, and I am the only one who actually knows when things will be done. I think providing the visual "here's the status" will help general users to feel more comfortable with the technology.
Instead of storing values within a settings.json file (currently within settings.py), start storing them using python-dotenv
Upon initiating request, get failed error message.
2021-02-06 00:23:30,426 ERROR django.request: Internal Server Error: /request/
Traceback (most recent call last):
File "/usr/lib/python3.8/site-packages/asgiref/sync.py", line 339, in thread_handler
raise exc_info[1]
File "/usr/lib/python3.8/site-packages/django/core/handlers/exception.py", line 38, in inner
response = await get_response(request)
File "/usr/lib/python3.8/site-packages/django/core/handlers/base.py", line 233, in _get_response_async
response = await wrapped_callback(request, *callback_args, **callback_kwargs)
File "/usr/lib/python3.8/site-packages/asgiref/sync.py", line 304, in __call__
ret = await asyncio.wait_for(future, timeout=None)
File "/usr/lib/python3.8/asyncio/tasks.py", line 455, in wait_for
return await fut
File "/usr/lib/python3.8/site-packages/asgiref/current_thread_executor.py", line 23, in run
result = self.fn(*self.args, **self.kwargs)
File "/usr/lib/python3.8/site-packages/asgiref/sync.py", line 343, in thread_handler
return func(*args, **kwargs)
File "/usr/lib/python3.8/site-packages/django/contrib/auth/decorators.py", line 21, in _wrapped_view
return view_func(request, *args, **kwargs)
File "./conreq/apps/user_requests/views.py", line 104, in request_content
radarr_params = obtain_radarr_parameters(
File "./conreq/utils/apps.py", line 432, in obtain_radarr_parameters
radarr_root = is_key_value_in_list(
TypeError: 'bool' object is not subscriptable
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.