Git Product home page Git Product logo

webui's Introduction

FlexGet

image

image

image

image

FlexGet is a multipurpose automation tool for content like torrents, nzbs, podcasts, comics, series, movies, etc. It can use different kinds of sources like RSS-feeds, html pages, csv files, search engines and there are even plugins for sites that do not provide any kind of useful feeds.

Example

Flexget uses a YAML based configuration file. The following example will look in the RSS feed in the link, will match any item that match the series names and download it:

tasks:
  tv:
    rss: http://example.com/torrents.xml
    series:
    - some series
    - another series
    download: /tvshows

There are numerous plugins that allow utilizing FlexGet in interesting ways and more are being added continuously.

FlexGet is extremely useful in conjunction with applications which have watch directory support or provide interface for external utilities like FlexGet. To get a sense of the many things that can be done with FlexGet you can take a look in our cookbook.

ChangeLog: https://flexget.com/ChangeLog

Help: https://github.com/Flexget/Flexget/discussions

Chat: https://flexget.com/Chat

Bugs: https://github.com/Flexget/Flexget/issues

Install

FlexGet is installable via pip with the command:

pip install flexget

For more detailed instructions see the installation guide.

How to use GIT checkout

Refer to development guide.

If you don't want to use virtualenv there's flexget_vanilla.py file which can be used to run FlexGet without virtualenv, note that you will need to install all required dependencies yourself.

webui's People

Contributors

dependabot-preview[bot] avatar dependabot[bot] avatar evoblicec avatar flexget-bot avatar kmikko avatar kristenmills avatar shadycuz avatar shawnphoffman avatar stevezau avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

webui's Issues

Version checker not updating

Hi,

The version checker doesn't seem to be updated with my current version, any ideas?

root@Flexget:~/flexget# flexget -V
3.1.46
You are on the latest release.

The Web GUI still shows me this though:
Version info
Flexget: 3.0.28
API: 1.7.0

Not sure how to reset it, or how it's checking it.

Thanks.

Clickable Torrent links

Under the Series page, when you click on a show and open the episode releases for that show, is it possible to remember the download links from other releases? That way if you need to download another episode of a different quality you can just click on the one you want and download the torrent?

Log output in web displaying nothing

Expected behaviour:

When viewing the log via the web interface, I should see the currently logged activity.

Actual behaviour:

When viewing the log via the web interface, even though it states that it is streaming the log detail is blank

Steps to reproduce:

Standard installation

Config:

Screenshots:

https://github.com/Flexget/webui/files/7672019/2021-12-08_08-07-15.pdf

Log:

(click to expand) 2021-12-08 08:05:37 INFO web_server Shutting down web server
2021-12-08 08:05:58 INFO manager Daemonizing...
2021-12-08 08:05:58 INFO manager Daemonize complete. New PID: 10327
2021-12-08 08:05:58 INFO web_server_daemon Running web server at IP 0.0.0.0:3456
2021-12-08 08:05:58 INFO web_server_daemon Initiating API
2021-12-08 08:05:58 INFO web_server_daemon Registering WebUI v2
2021-12-08 08:05:58 INFO web_server Web server started at http://127.0.1.1:3456
2021-12-08 08:05:58 INFO web_server API available at http://127.0.1.1:3456/api
2021-12-08 08:05:58 INFO web_server WebUI (v2) available at http://127.0.1.1:3456/
2021-12-08 08:05:58 INFO scheduler Starting scheduler

Additional information:

  • FlexGet version: 3.2.3
  • Installation method: pip
  • OS and version: Raspbian GNU/Linux version 10
  • Browser Verson: various
  • Python version: 3.7

[BUG] Variables cannot be saved with singles quotes around

Expected behaviour:

Save variable url with folding ' character (as suggested in the documentation). This works in v1.

Actual behaviour:

You can't save a variable with ' characters folding it. The variables won't be saved.

Steps to reproduce:

  • Step 1: Create a variable with an url value and fold it with ' character.
  • Step 2: Save it.
  • Step 3: Reload the page. The ' characters will be removed. Using the variable like this will generate a CRITICAL: [/templates/gotify/notify/entries/via/0/gotify/url] '{? gotify.url ?}' is not a 'url'

Config:

variables

gotify:
  token: mytoken
  url: 'https://mydomain.org'

config

templates:
  gotify:
    notify:
      entries:
        via:
          - gotify:
              url: '{? gotify.url ?}'
              token: '{? gotify.token ?}'

Screenshots:

Log:

(click to expand)
[/templates/gotify/notify/entries/via/0/gotify/url] '{? gotify.url ?}' is not a 'url'

Additional information:

  • FlexGet version: 3.1.15
  • Installation method: Docker
  • OS and version: Debian 10
  • Browser Verson: Firefox 72.0.2

[BUG] Config cannot be saved with accent character in it.

Expected behaviour:

Saves config with accent charactersk.

Actual behaviour:

The config won't be saved with accent characters in it.

Steps to reproduce:

  • Step 1: Put any accent character anywhere. You can use a commented line as well, like
  • Step 2: Click on the SAVE CONFIG button.
  • Step 3: Check the log, go back to config. The modification was not saved.

Config:

The error is not in my config. You can try it with any config.

#á

Screenshots:

None.

Log:

(click to expand)
2020-01-25T13:26:00.433769187Z 2020-01-25 14:26:00 ERROR    flask.app                     Exception on /server/raw_config [POST]
2020-01-25T13:26:00.433815441Z Traceback (most recent call last):
2020-01-25T13:26:00.433829799Z   File "/usr/lib/python3.8/threading.py", line 890, in _bootstrap
2020-01-25T13:26:00.433842726Z     self._bootstrap_inner()
2020-01-25T13:26:00.433854766Z     |    -> <function Thread._bootstrap_inner at 0x7fbf74628ca0>
2020-01-25T13:26:00.433867451Z     -> <WorkerThread(CP Server Thread-4, started 140460183706400)>
2020-01-25T13:26:00.433879745Z   File "/usr/lib/python3.8/threading.py", line 932, in _bootstrap_inner
2020-01-25T13:26:00.433892524Z     self.run()
2020-01-25T13:26:00.433903938Z     |    -> <function WorkerThread.run at 0x7fbf72896b80>
2020-01-25T13:26:00.433915905Z     -> <WorkerThread(CP Server Thread-4, started 140460183706400)>
2020-01-25T13:26:00.433927950Z   File "/usr/lib/python3.8/site-packages/cheroot/workers/threadpool.py", line 125, in run
2020-01-25T13:26:00.433939964Z     keep_conn_open = conn.communicate()
2020-01-25T13:26:00.433951848Z                      |    -> <function HTTPConnection.communicate at 0x7fbf72898790>
2020-01-25T13:26:00.433964137Z                      -> <cheroot.server.HTTPConnection object at 0x7fbf6ec53eb0>
2020-01-25T13:26:00.433976215Z   File "/usr/lib/python3.8/site-packages/cheroot/server.py", line 1280, in communicate
2020-01-25T13:26:00.433988151Z     req.respond()
2020-01-25T13:26:00.433999641Z     |   -> <function HTTPRequest.respond at 0x7fbf72898430>
2020-01-25T13:26:00.434011559Z     -> <cherrypy._cpwsgi_server.CPWSGIHTTPRequest object at 0x7fbf7454fa30>
2020-01-25T13:26:00.434023556Z   File "/usr/lib/python3.8/site-packages/cheroot/server.py", line 1083, in respond
2020-01-25T13:26:00.434035907Z     self.server.gateway(self).respond()
2020-01-25T13:26:00.434047694Z     |    |      |       -> <cherrypy._cpwsgi_server.CPWSGIHTTPRequest object at 0x7fbf7454fa30>
2020-01-25T13:26:00.434071261Z     |    |      -> <class 'cheroot.wsgi.Gateway_10'>
2020-01-25T13:26:00.434083029Z     |    -> <cherrypy._cpwsgi_server.CPWSGIServer object at 0x7fbf6fa514f0>
2020-01-25T13:26:00.434094885Z     -> <cherrypy._cpwsgi_server.CPWSGIHTTPRequest object at 0x7fbf7454fa30>
2020-01-25T13:26:00.434106500Z   File "/usr/lib/python3.8/site-packages/cheroot/wsgi.py", line 143, in respond
2020-01-25T13:26:00.434118377Z     response = self.req.server.wsgi_app(self.env, self.start_response)
2020-01-25T13:26:00.434129877Z                |    |   |      |        |    |    |    -> <function Gateway.start_response at 0x7fbf6f9c0550>
2020-01-25T13:26:00.434141703Z                |    |   |      |        |    |    -> <cheroot.wsgi.Gateway_10 object at 0x7fbf6e773d60>
2020-01-25T13:26:00.434155923Z                |    |   |      |        |    -> {'ACTUAL_SERVER_PROTOCOL': 'HTTP/1.1', 'PATH_INFO': '/api/server/raw_config', 'QUERY_STRING': '', 'REMOTE_ADDR': '172.20.0.7'...
2020-01-25T13:26:00.434168595Z                |    |   |      |        -> <cheroot.wsgi.Gateway_10 object at 0x7fbf6e773d60>
2020-01-25T13:26:00.434180300Z                |    |   |      -> <cherrypy._cptree.Tree object at 0x7fbf72836b50>
2020-01-25T13:26:00.434192204Z                |    |   -> <cherrypy._cpwsgi_server.CPWSGIServer object at 0x7fbf6fa514f0>
2020-01-25T13:26:00.434203923Z                |    -> <cherrypy._cpwsgi_server.CPWSGIHTTPRequest object at 0x7fbf7454fa30>
2020-01-25T13:26:00.434215528Z                -> <cheroot.wsgi.Gateway_10 object at 0x7fbf6e773d60>
2020-01-25T13:26:00.434227221Z   File "/usr/lib/python3.8/site-packages/cherrypy/_cptree.py", line 302, in __call__
2020-01-25T13:26:00.434238761Z     return app(environ, start_response)
2020-01-25T13:26:00.434250175Z            |   |        -> <bound method Gateway.start_response of <cheroot.wsgi.Gateway_10 object at 0x7fbf6e773d60>>
2020-01-25T13:26:00.434262305Z            |   -> {'ACTUAL_SERVER_PROTOCOL': 'HTTP/1.1', 'PATH_INFO': '/server/raw_config', 'QUERY_STRING': '', 'REMOTE_ADDR': '172.20.0.7', 'R...
2020-01-25T13:26:00.434274259Z            -> <Flask 'flexget.api.app'>
2020-01-25T13:26:00.434285867Z   File "/usr/lib/python3.8/site-packages/flask/app.py", line 2309, in __call__
2020-01-25T13:26:00.434297312Z     return self.wsgi_app(environ, start_response)
2020-01-25T13:26:00.434308713Z            |    |        |        -> <bound method Gateway.start_response of <cheroot.wsgi.Gateway_10 object at 0x7fbf6e773d60>>
2020-01-25T13:26:00.434320839Z            |    |        -> {'ACTUAL_SERVER_PROTOCOL': 'HTTP/1.1', 'PATH_INFO': '/server/raw_config', 'QUERY_STRING': '', 'REMOTE_ADDR': '172.20.0.7', 'R...
2020-01-25T13:26:00.434332780Z            |    -> <function Flask.wsgi_app at 0x7fbf71911820>
2020-01-25T13:26:00.434344378Z            -> <Flask 'flexget.api.app'>
2020-01-25T13:26:00.434356070Z   File "/usr/lib/python3.8/site-packages/flask/app.py", line 2292, in wsgi_app
2020-01-25T13:26:00.434373760Z     response = self.full_dispatch_request()
2020-01-25T13:26:00.434385367Z                |    -> <function Flask.full_dispatch_request at 0x7fbf7190dee0>
2020-01-25T13:26:00.434397017Z                -> <Flask 'flexget.api.app'>
2020-01-25T13:26:00.434408608Z > File "/usr/lib/python3.8/site-packages/flask/app.py", line 1813, in full_dispatch_request
2020-01-25T13:26:00.434420401Z     rv = self.dispatch_request()
2020-01-25T13:26:00.434431845Z          |    -> <function Flask.dispatch_request at 0x7fbf7190de50>
2020-01-25T13:26:00.434443366Z          -> <Flask 'flexget.api.app'>
2020-01-25T13:26:00.434454796Z   File "/usr/lib/python3.8/site-packages/flask/app.py", line 1799, in dispatch_request
2020-01-25T13:26:00.434466221Z     return self.view_functions[rule.endpoint](**req.view_args)
2020-01-25T13:26:00.434478283Z            |    |              |    |           |   -> {}
2020-01-25T13:26:00.434490117Z            |    |              |    |           -> <Request 'http://mydomain/api/server/raw_config' [POST]>
2020-01-25T13:26:00.434502193Z            |    |              |    -> 'server_server_raw_config_api'
2020-01-25T13:26:00.434513699Z            |    |              -> <Rule '/server/raw_config/' (HEAD, POST, GET, OPTIONS) -> server_server_raw_config_api>
2020-01-25T13:26:00.434525589Z            |    -> {'static': <bound method _PackageBoundObject.send_static_file of <Flask 'flexget.api.app'>>, 'specs': <function View.as_view....
2020-01-25T13:26:00.434537758Z            -> <Flask 'flexget.api.app'>
2020-01-25T13:26:00.434550254Z   File "/usr/lib/python3.8/site-packages/flask_restplus/api.py", line 313, in wrapper
2020-01-25T13:26:00.434561795Z     resp = resource(*args, **kwargs)
2020-01-25T13:26:00.434573209Z            |         |       -> {}
2020-01-25T13:26:00.434585000Z            |         -> ()
2020-01-25T13:26:00.434596626Z            -> <function View.as_view.<locals>.view at 0x7fbf711ead30>
2020-01-25T13:26:00.434608429Z   File "/usr/lib/python3.8/site-packages/flask/views.py", line 88, in view
2020-01-25T13:26:00.434619950Z     return self.dispatch_request(*args, **kwargs)
2020-01-25T13:26:00.434640259Z            |    |                 |       -> {}
2020-01-25T13:26:00.434651731Z            |    |                 -> ()
2020-01-25T13:26:00.434663978Z            |    -> <function Resource.dispatch_request at 0x7fbf713deaf0>
2020-01-25T13:26:00.434675565Z            -> <flexget.api.core.server.ServerRawConfigAPI object at 0x7fbf6fcc52b0>
2020-01-25T13:26:00.434687056Z   File "/usr/lib/python3.8/site-packages/flask_restplus/resource.py", line 44, in dispatch_request
2020-01-25T13:26:00.434704908Z     resp = meth(*args, **kwargs)
2020-01-25T13:26:00.434716284Z            |     |       -> {}
2020-01-25T13:26:00.434727747Z            |     -> ()
2020-01-25T13:26:00.434739148Z            -> <function with_session.<locals>.decorator.<locals>.wrapper at 0x7fbf6e6caa60>
2020-01-25T13:26:00.434751024Z   File "/usr/lib/python3.8/site-packages/flexget/api/app.py", line 74, in wrapped
2020-01-25T13:26:00.434762536Z     rv = f(*args, **kwargs)
2020-01-25T13:26:00.434773606Z          |  |       -> {}
2020-01-25T13:26:00.434784800Z          |  -> ()
2020-01-25T13:26:00.434796261Z          -> <function with_session.<locals>.decorator.<locals>.wrapper at 0x7fbf6e6ca9d0>
2020-01-25T13:26:00.434808338Z   File "/usr/lib/python3.8/site-packages/flexget/utils/database.py", line 29, in wrapper
2020-01-25T13:26:00.434820140Z     return func(*args, **kwargs)
2020-01-25T13:26:00.434831688Z            |     |       -> {'session': <sqlalchemy.orm.session.ContextSession object at 0x7fbf6e9fc040>}
2020-01-25T13:26:00.434843615Z            |     -> ()
2020-01-25T13:26:00.434856136Z            -> <bound method ServerRawConfigAPI.post of <flexget.api.core.server.ServerRawConfigAPI object at 0x7fbf6fcc52b0>>
2020-01-25T13:26:00.434868525Z   File "/usr/lib/python3.8/site-packages/flexget/api/app.py", line 118, in wrapper
2020-01-25T13:26:00.434880357Z     return func(*args, **kwargs)
2020-01-25T13:26:00.434891758Z            |     |       -> {'session': <sqlalchemy.orm.session.ContextSession object at 0x7fbf6e9fc040>}
2020-01-25T13:26:00.434903841Z            |     -> (<flexget.api.core.server.ServerRawConfigAPI object at 0x7fbf6fcc52b0>,)
2020-01-25T13:26:00.434915784Z            -> <function ServerRawConfigAPI.post at 0x7fbf711ef1f0>
2020-01-25T13:26:00.434927536Z   File "/usr/lib/python3.8/site-packages/flexget/api/core/server.py", line 229, in post
2020-01-25T13:26:00.434939473Z     backup_path = self.manager.update_config(config)
2020-01-25T13:26:00.434950836Z                   |    |       -> <function Manager.update_config at 0x7fbf72aec0d0>
2020-01-25T13:26:00.434962674Z                   |    -> <flexget.manager.Manager object at 0x7fbf72b59970>
2020-01-25T13:26:00.434974461Z                   -> <flexget.api.core.server.ServerRawConfigAPI object at 0x7fbf6fcc52b0>
2020-01-25T13:26:00.434986241Z 
2020-01-25T13:26:00.434997513Z UnboundLocalError: local variable 'config' referenced before assignment

Additional information:

  • FlexGet version: 3.1.12
  • Installation method: Docker, using wiserain/flexget
  • OS and version: Debian GNU/Linux 10 (buster)
  • Browser Verson: Firefox 72.0.2 (64-bit)

Mock API for development

I think at some point we should make a mock API for development. I usually just work off a snapshot of my actual flexget db but that's really not all that convenient

Web UI v2 does not respect web_server.base_url configuration option

Expected behaviour:

Asset references generated by FlexGet UI v2 should respect web_server.base_url configuration option.

Actual behaviour:

Asset references generated by FlexGet UI v2 all begin with /v2, regardless of the value of the web_server.base_url configuration option.

Steps to reproduce:

  1. Enable Web UI v2 with a non-default base_url configuration option, e.g. /flexget.
  2. Open web browser, and open developer tools.
  3. Navigate to /flexget/v2/, which appears as a blank page.
  4. Observe 404 errors for requests to paths like /v2/assets/manifest.dd611d6a01d922d6dc07.js (which should be /flexget/v2/assets/manifest.dd611d6a01d922d6dc07.js).

Config:

Must include at least this, the rest doesn't matter.

web_server:
  web_ui: yes
  base_url: /flexget
  run_v2: yes

Log:

None.

Additional information:

  • FlexGet version: 2.21.5
  • Python version: 3.7.3
  • Installation method: pip3 install flexget
  • Using daemon (yes/no): yes
  • OS and version: Alpine Linux 3.9.4
  • Link to crash log: N/A

Upgrades and Cleanup

It's been well over a year since I or @stevezau has done anything here, so going to try to clean stuff up before getting back into building new stuff.

  • Major Dependency version updates
    • Webpack 3 -> 4 (#22)
    • Babel 6 -> 7 (#22)
    • Material UI 1 -> 3 -> 4 (#26)
    • Emotion 9 -> 10 (#27)
    • eslint 4 -> 5 (#25)
    • jest 22 -> 24 (#22)
    • node 8 -> 12 (#22)
  • Other Random Stuff:
    • Fix vulnerability warnings (#22)
    • Update README (#25)

[BUG] Missing favicon

Expected behaviour:

Display Favorite icon in a browser tab

Actual behaviour:

Missing Favicon on both Chrome & Edge

Steps to reproduce:

  • Open the Web UI v2

Config:

  • Using WebUI v2 (current default)

Screenshots:

  • Edge
    image
  • Chrome
    image

Log:

Maybe it's linked to the `[object Module]` is the html code (click to expand)
<!DOCTYPE html>
<html lang="en">
<head>
  <base href="/">
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
  <meta http-equiv="x-ua-compatible" content="ie=edge">
  <link rel="shortcut icon" href="[object Module]">
  <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
  <title>FlexGet Manager</title>
<link href="assets/vendors~main.27760b7e0f4cf6ab5ab9.css" rel="stylesheet"></head>
<body>
  <div id="react" />
<script type="text/javascript" src="assets/vendors~main.27760b7e0f4cf6ab5ab9.js"></script><script type="text/javascript" src="assets/main.95187e37da7ce6e5c9e0.js"></script></body>
</html>

Additional information:

  • FlexGet version: Flexget: 3.1.52.dev
  • Installation method: Pip & Github build
  • OS and version: Ubuntu 18.04.4 LTS
  • Browser Version: Version 81.0.4044.129 (Build officiel) (64 bits)

Tasks execution

Expected behaviour:

Add ability to execute one specific task on demand, like old WebUI v1

Actual behaviour:

In new WebUI v2 you can't execute an specific task

Additional information:

  • FlexGet version: 3.1.8
  • API version 1.7.1
  • Installation method: Docker
  • OS and version: Linux-Alpine
  • Browser Version: Chrome 79

Movie List Suggestions

With the new WebUI_v2 the Movie List section is unusable, I found some errors and improvements.

  1. The section load slowly, maybe because image request for all items.

In WebUI_v1 the images store in cache folder at first time, for the second time it uses the cache,
In WebUI_v2 saves the image to cache but never uses it.

  1. I can ADD a new Movie using the local title, Spanish e.g., but always show the English title only show the Spanish title if english doesn't exist. This is very confusing to find an element. (Fixed in #108)

  2. Now I can see all the items as individual cards, it show the blackdrop as image but not all movies has it, especially premieres items, maybe if always show the main poster it will be more intuitive and user-friendly. And if it were possible to add an option to see all items as a list view, it would be very fast and interesting for when you have to show many items.

Can't click options or hamburger menu on series card, because it will open the series

Expected behaviour:

When i click on the 3 dots or hamburger menu on a series card i expect the following:
Opening the options menu to select trakt or imdb etc and being able to click on it

Actual behaviour:

The options menu opens, but the series card is also clicked so the series opens.

Steps to reproduce:

  • Step 1: go to flexget series in webui
  • Step 2: click on the option menu of a series card

Additional information:

  • FlexGet version: 3.1.50
  • Installation method: docker
  • OS and version: manjaro linux
  • Browser Verson: edge chromium Version 81.0.416.58 (Official build) (64-bit)

Changelog

Set up changelog and improve stuff around versioning

Flexget 3.5.1 in daemon mode, Schedular not working

If idont enable the daemon and simply call flexget via cronjob, everything works fine.
however when i enable the daemon so enable the web ui. While the web UI works fine, my flexget cron doesnt execue. I see the following in flexget log

2020-04-20 21:52:02 ERROR manager Task queue has died unexpectedly. Restarting it. Please open an issue on Github and include any previous error logs

I have tried setting a schdule in flexget config but that doesn work either. The only way for me to get it work is to stop the daemon/web ui and just let regular linux cron do its thing.

`More Info`\`More Information` URL lands on `Not Found`

The More Information URL lands on a page that Page Not Found. This has been true for many versions now

image

image

Additional information:

  • Flexget: 3.5.17
  • Web UI: 2.0.28
  • API: 1.8.0
  • Installed via official Docker image
    • "org.opencontainers.image.created": "2023-01-03T15:15:41.599Z",
    • "org.opencontainers.image.description": "The official FlexGet repository",
    • "org.opencontainers.image.licenses": "MIT",
    • "org.opencontainers.image.revision": "340b6d7995e476a7296b6a721ae811bbbedfdd6f",
    • "org.opencontainers.image.source": "https://github.com/Flexget/Flexget",
    • "org.opencontainers.image.title": "Flexget",
    • "org.opencontainers.image.url": "https://github.com/Flexget/Flexget",
    • "org.opencontainers.image.version": "3.5.17"

Pending List

TODO:

  • Add List (#30)
  • View Lists (#30)
  • Add Entry (#30)
  • View List Entries (#30)
  • Approve/Reject Entry (#30)
  • Remove/Inject Entry (#30)
  • hooks version (#44)
  • Fix FlexgetEntry (#44)
  • New Pagination and Sort (#44)
  • Remove List UI (#44)
  • Add Entry UI (#44)
  • Support Injectable AppBar (#53)
  • Tests (#54)
  • Bulk add and removal (#54)

Dark Mode does not survive beyond the current session

Synopsis

Dark mode does not survive beyond the current session. A simple refresh will revert to default 'light mode'.

Expected behaviour:

If dark mode is selected, it is expected that it should survive to future sessions (e.g. via cookie).

Actual behaviour:

Refresh of page (or close reopen browser) results in return to default 'light mode'.

Steps to reproduce:

  • Step 1: Select dark mode
  • Step 2: Refresh the page

Additional Information

  • Version Info
    • Flexget: 3.5.17
    • Web UI: 2.0.28
    • API: 1.8.0
  • Installed via official docker image
    • "org.opencontainers.image.created": "2023-01-03T15:15:41.599Z",
    • "org.opencontainers.image.description": "The official FlexGet repository",
    • "org.opencontainers.image.licenses": "MIT",
    • "org.opencontainers.image.revision": "340b6d7995e476a7296b6a721ae811bbbedfdd6f",
    • "org.opencontainers.image.source": "https://github.com/Flexget/Flexget",
    • "org.opencontainers.image.title": "Flexget",
    • "org.opencontainers.image.url": "https://github.com/Flexget/Flexget",
    • "org.opencontainers.image.version": "3.5.17"

Improve web ui series and movie list loading

Expected behaviour:

quicker loading of web ui for series and movie lists

Actual behaviour:

The current web ui loads the series and movie lists very slowly while waiting for posters and metadata.

If possible, a text only view or caching option to not load dynamically every time would speed up the performance.

Steps to reproduce:

  1. open web ui
  2. go to series or movie lists tab

Additional information:

  • FlexGet version: 3.3.4
  • Python version: 3.9.9
  • Installation method: docker
  • Using daemon (yes/no): yes
  • OS and version: alpine 3.14

EXECUTE task function not working in the Web UI

Clicking on "execute" on a selected task doesnt run the task.
How i notice that?
Flexget log is not updated,
Start/end time for the tasks remains unchanged in the web interface. Am i missing something? Shouldnt the execute task be like an on demand run of the tasks?

Version Info
Flexget: 3.1.51
API: 1.7.1

Fall back to v1 fails to authenticate.

Expected behaviour:

Setting in config:

web_server:
  run_v1: true

Should allow you to use v1 WebUI.

Actual behavior:

The v1 endpoint becomes available but does not allow you to login.

Screenshots:

image

Additional information:

  • FlexGet version: 3.1.7 API 1.7.1
  • Installation method:
  • OS and version:
  • Browser Verson:

Similar to #95 (comment) in item number 2.

Task Plugin

Possibly unified version of status and execute

IPv6 connection to web ui

Hi!

I tried to to make the web ui listen to IPv6 by changing bind to :: (instead of 0.0.0.0) like I did with transmission web.
But unfortunately that stops the daemon from starting up.

Is there another option to use IPv6?

thanks!

The server could not verify that you are authorized to access the URL requested.

After login i get a error

The server could not verify that you are authorized to access the URL requested. You either supplied the wrong credentials (e.g. a bad password), or your browser doesn't understand how to supply the credentials required.

Password is set and is right. I can login in. But every time i see a error.

Flexget 3.1.66

Firefox Console

{"username":"flexget","password":"xxxxxxxxx*"}

{
"message": "user logged in",
"status": "success",
"status_code": 200
}

Improve messaging around saving variables

I think it's fairly unclear right now that when you save variables, we are saving to the DB and not the file. I think some messaging around that and indicating using variables: yes in your config will improve the UX

Series FF

  • Cleanup series skeleton (#68)
  • add begin and latest series ( #70)
  • back button header (#68)
  • Delete/Reset all releases (#69)

Version 3.9 release causes web ui to render blank due to Semver check failing

Expected behaviour:

Version check shouldn't cause the page to crash. The web UI should either use loose checking or flexget proper should use the full x.x.x versioning.

Actual behaviour:

Web UI v2 doesn't load. The latest flexget 3.9 version is causing the Semver check to fail since 3.9 isn't fully semver compliant. You can coerce it in the UI to get things working and prevent it from happening in the future. Something like this inside Version.tsx

const coercedLatestVersion = coerce(latestVersion).format();
...
gt(coercedLatestVersion, normalizedVersion)

Or, enforcing full semver versions on flexget proper would accomplish the same.

Steps to reproduce:

  • Step 1: Load the web ui v2
  • Step 2: Observe it load for a half second then go blank
  • Step 3: Observe console error regarding semver version failure

Config:

N/A

Screenshots:

image image

Log:

(click to expand)
react-dom.production.min.js:196 TypeError: Invalid Version: 3.9
    at new l (semver.js:41:13)
    at e.exports (compare.js:3:3)
    at e.exports (gt.js:2:29)
    at Ot (Version.tsx:25:10)
    at ca (react-dom.production.min.js:154:98)
    at $a (react-dom.production.min.js:174:273)
    at Es (react-dom.production.min.js:261:312)
    at gu (react-dom.production.min.js:230:22)
    at hu (react-dom.production.min.js:229:362)
    at ou (react-dom.production.min.js:223:216)
overrideMethod @ console.js:213
ds @ react-dom.production.min.js:196
Ss.n.callback @ react-dom.production.min.js:210
_o @ react-dom.production.min.js:131
bo @ react-dom.production.min.js:131
bu @ react-dom.production.min.js:252
t.unstable_runWithPriority @ scheduler.production.min.js:18
Ui @ react-dom.production.min.js:120
yu @ react-dom.production.min.js:244
ou @ react-dom.production.min.js:223
(anonymous) @ react-dom.production.min.js:121
t.unstable_runWithPriority @ scheduler.production.min.js:18
Ui @ react-dom.production.min.js:120
Gi @ react-dom.production.min.js:121
$i @ react-dom.production.min.js:120
eu @ react-dom.production.min.js:214
La @ react-dom.production.min.js:163
(anonymous) @ hooks.tsx:10
u @ runtime.js:45
(anonymous) @ runtime.js:271
forEach.e.<computed> @ runtime.js:97
bt @ main.cce4d52f6988bfadab4f.js:1
i @ main.cce4d52f6988bfadab4f.js:1
Promise.then (async)
bt @ main.cce4d52f6988bfadab4f.js:1
i @ main.cce4d52f6988bfadab4f.js:1
(anonymous) @ main.cce4d52f6988bfadab4f.js:1
(anonymous) @ main.cce4d52f6988bfadab4f.js:1
(anonymous) @ hooks.tsx:7
(anonymous) @ hooks.tsx:13
ps @ react-dom.production.min.js:198
Cu @ react-dom.production.min.js:255
t.unstable_runWithPriority @ scheduler.production.min.js:18
Ui @ react-dom.production.min.js:120
wu @ react-dom.production.min.js:254
ou @ react-dom.production.min.js:223
(anonymous) @ react-dom.production.min.js:121
t.unstable_runWithPriority @ scheduler.production.min.js:18
Ui @ react-dom.production.min.js:120
Gi @ react-dom.production.min.js:121
$i @ react-dom.production.min.js:120
eu @ react-dom.production.min.js:214
La @ react-dom.production.min.js:163
(anonymous) @ Login.tsx:17
u @ runtime.js:45
(anonymous) @ runtime.js:271
forEach.e.<computed> @ runtime.js:97
$ @ 14.18cf3ab07df2cff9c980.js:1
i @ 14.18cf3ab07df2cff9c980.js:1
Promise.then (async)
$ @ 14.18cf3ab07df2cff9c980.js:1
i @ 14.18cf3ab07df2cff9c980.js:1
(anonymous) @ 14.18cf3ab07df2cff9c980.js:1
(anonymous) @ 14.18cf3ab07df2cff9c980.js:1
(anonymous) @ Login.tsx:14
(anonymous) @ Login.tsx:20
ps @ react-dom.production.min.js:198
Cu @ react-dom.production.min.js:255
t.unstable_runWithPriority @ scheduler.production.min.js:18
Ui @ react-dom.production.min.js:120
wu @ react-dom.production.min.js:254
ou @ react-dom.production.min.js:223
(anonymous) @ react-dom.production.min.js:121
t.unstable_runWithPriority @ scheduler.production.min.js:18
Ui @ react-dom.production.min.js:120
Gi @ react-dom.production.min.js:121
V @ scheduler.production.min.js:17
O.port1.onmessage @ scheduler.production.min.js:14
Show 1 more frame
Show less
main.cce4d52f6988bfadab4f.js:1 Uncaught (in promise) TypeError: Invalid Version: 3.9
    at new l (semver.js:41:13)
    at e.exports (compare.js:3:3)
    at e.exports (gt.js:2:29)
    at Ot (Version.tsx:25:10)
    at ca (react-dom.production.min.js:154:98)
    at $a (react-dom.production.min.js:174:273)
    at Es (react-dom.production.min.js:261:312)
    at gu (react-dom.production.min.js:230:22)
    at hu (react-dom.production.min.js:229:362)
    at ou (react-dom.production.min.js:223:216)

Additional information:

  • FlexGet version: 3.9
  • Installation method: Docker
  • OS and version: Mac OS X
  • Browser Verson: Chrome 115.0.5790.170

Entry Card/ Managed List Feedback

  • some feedback. 1. You can’t copy paste text, ie the title, it selects it. Kinda annoying, sometimes you want to copy title and do research. 2. tv shows show title (0). I think because there is no year.. if not year hide it. (#68)
  • TV show does not show the network either (#68)
  • Get latest data from plugin imdb etc
  • Tests (#56)
  • Add links (#57)

Cards missing right margin on Firefox Mobile

Expected behaviour:

Cards to be displayed in their entirety, no horizontal scrolling needed. Firefox Mobile

Actual behaviour:

The right margin is not applied to cards on pages like Pending List have to be scrolled horizontally to reach the action buttons.

Steps to reproduce:

  • Step 1: Open Pending Lists or Series List on Firefox Mobile

Screenshots:

Chrome x Firefox

Additional information:

  • FlexGet version: 3.1.47
  • Installation method: git
  • OS and version:
    • Host: Win10
    • Client: Android 8.0.0 (Oreo)
  • Browser Version:
    • Chrome Mobile 80.0.3987.149
    • Firefox Mobile 68.7.0

[BUG] Reversed Season\Episode identifiers

Expected behaviour:

Episode 08 of Season 01 to be shown as S01E08

Actual behaviour:

Episode 08 of Season 01 is shown as S08E01 (visual only)

Steps to reproduce:

  • Step 1: Just visited a series page (/series/<id>)

Screenshots:

I hid the thumbnails to fit more than 3 cards on the screenshot
Screenshot

Additional information:

  • FlexGet version: 3.1.1
  • Python version: 3.7
  • Installation method: Git
  • OS and version: Win 10

Feature request: Change begin episode web ui

Would be nice if we can change the begin episode of a series in the web ui. Maybe with the hamburger menu, but i can imagine it would nice if every series gets a 'configuration' page. Holding: begin episode, quality profiles, tracking options etc

Series list imported from Trakt does not refresh after initial configuration

Expected behaviour:

Actual behaviour:

Steps to reproduce:

  • Step 1: Create a Trakt.tv account and a list
  • Step 2: Use FlexGet cookbook example to import the list
  • Step 3: Add a new show to your Trakt.tv list
  • Step 4: FlexGet webUI Series tab does not get refreshed and the new show does not show up/is not downloaded

Config:

web_server:
    bind: 0.0.0.0
    port: 8290
    web_ui: yes

templates:
  torrentclient:
    transmission:
      host: localhost
      port: 9091
      username: /variables/transmission/username
      password: /variables/transmission/password
  tv:
    configure_series:
      settings:
        # Configure all the series options to your taste
        quality: 720p-1080p !cam !ts
        path: /volume1/Media/Series/{{series_name}}/Season {{series_season}}/  # This will sort your downloads if you are using one of the output plugins which supports it
        identified_by: ep
      from:
        trakt_list:
          account: MyAccount
          list: TV Shows
          type: shows
    no_entries_ok: yes

tasks:
  # This task will look for episodes you have added to your `TV Shows` list at trakt.
  # It will set the `begin` series option for that show, then remove the episode and re-add
  # it to your `TV Shows` list as a show.
  follow-series:
    seen: local
    priority: 1
    trakt_list:
      account: MyAccount
      list: TV Shows
      type: shows
    accept_all: yes
    set_series_begin: yes
    list_remove:
      - trakt_list:
          account: MyAccount
          list: TV Shows
          type: episodes
    list_add:
      - trakt_list:
          account: MyAccount
          list: TV Shows
          type: shows
  
  Download-ENG:
    priority: 2
    discover:
      what:
        - next_series_episodes:
            from_start: yes
      from:
        - limetorrents:
            category: tv  
        - piratebay:
            category: tv
    template:
      - torrentclient
      - tv
      
  Download-FR:
    priority: 2
    rss: RSSFEEDLINK
    template:
      - torrentclient
      - tv
      
schedules:
  - tasks: '*'
    interval:
      minutes: 2

Screenshots:

Log:

(click to expand)
paste log output here

Additional information:

  • FlexGet version: 3.7.10
  • Installation method: Synocommunity package
  • OS and version: DSM 7.2.1-69057 (Synology DS218)
  • Browser Version: Brave 1.64.109

Unable to execute newly created task

Expected behaviour:

  • Author a new task in the config page
  • Goto task page
  • Click Execute button
  • Find the newly authored task in the list

Actual behaviour:

The newly authored task does not appear in the list.

It seems the tasks to choose from are sourced from the list of tasks displayed inn the page, so any new tasks are not selectable and there is no way to just enter any task.

Steps to reproduce:

  • See above

Config:

Paste FULL config and remove any personal info if config is too long, attach the file to the ticket.
If issue is with a single task, you can get get resulting configuration by running:
  flexget execute --task <NAME> --dump-config
Make sure to redact any personal information (passwords, api keys, etc) !

Screenshots:

Log:

(click to expand)
paste log output here

Additional information:

  • FlexGet version: 3.1.56
  • Installation method: Docker
  • OS and version: QNAP
  • Browser Verson: Chrome latest

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.