Commit Graph

242 Commits (94ee832a2716788978a6f5597bd0d97d0c64daec)

Author SHA1 Message Date
voussoir ec402dcd0b
Let endpoint return new values of queuefile_ext, download_dir. 2021-09-15 18:55:14 -07:00
voussoir bf1bbe8748
Bind enter to submit for download_directory. 2021-09-15 18:53:36 -07:00
voussoir b038099573
Fix template to expect pathclass for download_directory. 2021-09-15 18:53:23 -07:00
voussoir 2c133d18f3
Improve the way prod imports flask backend. 2021-09-08 20:02:20 -07:00
voussoir d5b50ff1f6
Improve ycdl_flask_dev helptext. 2021-09-08 19:32:21 -07:00
voussoir ad306ae771
Make better use of vlogging. 2021-09-08 19:31:56 -07:00
voussoir e17b6668f3
Add link to channel/videos page in the settings list. 2021-09-07 14:05:36 -07:00
voussoir 69924b0b13
Add operatornotify to YCDL flask dev. 2021-09-05 01:27:02 -07:00
voussoir 6068d644b9
Add autorefresh to Channel to include/exclude in refresh_all loop. 2021-09-05 01:26:34 -07:00
voussoir 0418cae57a
Move truthystring to stringtools. 2021-09-05 01:22:21 -07:00
voussoir 2ab0b38c84
Add common.formdata so api.js can just use dicts. 2021-09-03 12:53:01 -07:00
voussoir 2ad85ad69a
Add Channel.set_download_directory. 2021-09-01 23:37:43 -07:00
voussoir 8c2aea06f3
Close the spinners after error alerts. 2021-09-01 23:32:56 -07:00
voussoir 8af64598a2
Split /channel, /videos, /watch routes. Improve handling of 404 video. 2021-08-25 17:33:19 -07:00
voussoir 491992b606
Some linting. 2021-08-20 22:59:17 -07:00
voussoir 46fc9ecef3
Define color_primary which was previously not set. 2021-06-25 23:05:06 -07:00
voussoir b90618a93b
Fix leftover imports. 2021-06-07 14:56:54 -07:00
voussoir f2a81720bd
Move make_json_response to voussoirkit.flasktools. 2021-06-04 21:50:09 -07:00
voussoir d2af56c3f0
Reduce excessive hash spacer. 2021-06-04 21:41:46 -07:00
voussoir d76d592501
Add endpoint /all_channels.json to facilitate future autocomplete. 2021-06-04 21:41:30 -07:00
voussoir 8b4edad9f2
Replace single quotes with double quotes. 2021-06-04 21:37:10 -07:00
voussoir 83672736d5
Remove unnecessary intermediate variable ip. 2021-06-04 21:34:05 -07:00
voussoir 742034d287
Replace margin with grid-row-gap. 2021-06-04 20:48:51 -07:00
voussoir 67619c506e
Replace #000 with black. 2021-06-04 20:47:54 -07:00
voussoir a697fabfff
Give class channel_card to both pending and not. 2021-06-04 20:44:57 -07:00
voussoir c74b9523e4
Don't sort channels from get_channels, use get_things. 2021-06-04 20:35:17 -07:00
voussoir 00917f585e
Turn off hotkeys.js logging every press. 2021-06-04 13:03:05 -07:00
voussoir b9019095e2
Synchronize with Etiquette. 2021-06-01 18:18:08 -07:00
voussoir 16be502991
Add explanation to common.css --wide --narrow. 2021-05-19 23:43:21 -07:00
voussoir 74d4a55d32
Rename import bot -> youtube_credentials.
In the days of making reddit bots I always put creds into bot.py.
But for this project it wouldn't make any sense to newcomers.
2021-04-25 18:02:26 -07:00
voussoir 8a6f33851e
Pass skip_failures=True from frontend button. 2021-04-21 21:31:03 -07:00
voussoir 991bafb46e
Use let for video_cards assignment. 2021-04-16 16:53:09 -07:00
voussoir d185a3f451
Update requirements.txt. 2021-04-04 11:17:11 -07:00
voussoir 9b6af96b95
Use voussoirkit.flasktools for gzip_response. 2021-04-02 18:31:04 -07:00
voussoir e00bfa368b
Update docstring "launch ycdl_flask_dev, _prod". 2021-04-02 18:00:01 -07:00
voussoir fa363a33c7
Improve handling of livestreams, premieres with live_broadcast attr. 2021-03-31 17:24:57 -07:00
voussoir cfad775a0a
Move published_string to a property of the Video object. 2021-03-24 20:29:15 -07:00
voussoir b134a8783b
Remove unnecessary query_string argument. 2021-03-24 20:09:23 -07:00
voussoir 9c5fb4fec1
Move jsonify methods to the objects instead of separate file. 2021-02-25 19:46:00 -08:00
voussoir 65fdae97da
Store request.is_localhost like Etiquette. 2021-02-25 19:45:11 -08:00
voussoir 6db7fe9a24
Punctuate pid line. 2021-01-30 04:34:46 -08:00
voussoir 69ae0280f4
Wrap Channel RSS link in div so a-tag doesn't stretch all the way. 2021-01-30 04:31:54 -08:00
voussoir acf29b9e9f
Show pid when server starts. 2021-01-30 04:31:48 -08:00
voussoir 5bedabdc66
Move site.debug to _dev, _prod launchers. 2021-01-28 16:46:54 -08:00
voussoir d3555dfbf3 Sync with Etiquette. 2021-01-11 15:36:16 -08:00
voussoir 4bf27d4458 Sync with Etiquette. 2021-01-02 16:54:20 -08:00
voussoir 56dfb6db19 Add the state filter's name into the "X items" line. 2020-11-26 18:24:15 -08:00
voussoir 083e9dd2ee Add (p) link to pending videos from generic listing page. 2020-11-21 11:25:46 -08:00
voussoir 8de342b054 Set log level by argv. 2020-11-20 16:23:36 -08:00
voussoir ced16d9063 Don't traceback.print_exc. 2020-11-15 21:10:01 -08:00
voussoir ca8a2a2d55 Add channel's RSS link to the settings tab. 2020-11-15 17:57:23 -08:00
voussoir e4b769336b Set ytrss log level during flask launch. 2020-11-15 17:57:07 -08:00
voussoir 11414b4088 Add log_level param to constructor, like Etq. 2020-11-09 20:22:54 -08:00
voussoir 8cdf18b987 Wrap long line. 2020-11-09 20:20:45 -08:00
voussoir 5841279f9e Sync common.js with Etiquette. 2020-11-08 19:32:04 -08:00
voussoir be7c5982e9 Don't use a default refresh rate. User must provide --refresh_rate. 2020-11-03 00:04:32 -08:00
voussoir 4b1fde386d Add some docstrings to the request code. 2020-11-03 00:03:59 -08:00
voussoir e09153c5e3 Alert response if download/ignore/pending action fails. 2020-10-29 16:14:58 -07:00
voussoir 42417ed008 Sync common.js with Etiquette. 2020-10-23 07:44:18 -07:00
voussoir c5c67b9c69 Let select_all, deselect_all ignore hidden cards.
So that ctrl+a after filtering only selects the filter results.
2020-10-11 18:43:47 -07:00
voussoir 67a3472aad Avoid creating emptystring promptclass. 2020-10-04 16:53:27 -07:00
voussoir 14ab3f3b06 Reorganize a bunch of functions and other indulgences. 2020-10-02 19:46:36 -07:00
voussoir ed3942b943 Let response status be 0 even if request didn't complete.
Since meta.status would be undefined for an incomplete request,
I would have to check response.completed && response.meta.status,
which is too much burden. Let's set the status immediately, and
if a callback wants to do further diving we'll use completed then.
2020-10-02 19:43:25 -07:00
voussoir 94e3bcd21d Set tabbed_container data-active-tab-id on tab change. 2020-10-02 13:17:38 -07:00
voussoir 0f9fbfa6e8 Add synchronized hotkeys.js from Etiquette; add ctrl+a, ctrl+d. 2020-10-02 13:17:08 -07:00
voussoir d1b42b71cb Enforce keyword-only args, alphabetize args. 2020-09-30 15:17:27 -07:00
voussoir bb72c40c53 Add option --localhost_only. 2020-09-30 15:15:30 -07:00
voussoir 038ce9cffb Rename flask launchers -> _dev, _prod.
I want to reduce some complexity around here, part of which is that
launch imported entrypoint imported backend, all to do some proxy
wrapping which isn't necessary for the dev case anyway. Less
layers of wrapping and importing is good. Plus I think this naming
is more clear.
Additionally, I realized that the entrypoint aka prod launcher was
never updated to init the ycdldb as that was only done by the argparse
launcher. Now it's hardcoded and I'll consider adding a config file.
2020-09-30 15:03:29 -07:00
voussoir f77809e793 Add top docstring and log format like Etiquette. 2020-09-30 14:47:05 -07:00
voussoir fb1d5d3e6e Add select_all. 2020-09-29 10:55:04 -07:00
voussoir ede7eab80b Replace this loop with a nice map. 2020-09-29 10:54:58 -07:00
voussoir 16dc6066df Leverage live HTMLCollection for selections instead of separate array. 2020-09-29 10:54:31 -07:00
voussoir 898be91538 Spread video embed string over multiple lines. 2020-09-29 01:17:05 -07:00
voussoir 572612a282 Replace variable swap with a one-liner. 2020-09-29 01:16:35 -07:00
voussoir e584e05f5e Move color definitions from common.css to ycdl.css. 2020-09-25 16:25:39 -07:00
voussoir 4f6080859a Synchronize Etiquette and YCDL. 2020-09-22 02:59:17 -07:00
voussoir 69c1dd92e9 Synchronize --wide, --narrow with Etiquette. 2020-09-19 10:42:31 -07:00
voussoir 34aafedf46 Synchronize with Etiquette. 2020-09-18 16:35:02 -07:00
voussoir 741cddc2e4 Add set_queuefile_extension method, endpoint, and ui. 2020-09-16 10:23:38 -07:00
voussoir 223d3d01fb Rename automark_hook -> _form; use more const. 2020-09-16 10:22:33 -07:00
voussoir 76b1504353 Synchronize with Etiquette. 2020-09-15 15:04:50 -07:00
voussoir ec19301bcc Rewrite entry_with_history hook and use keydown instead of keyup. 2020-09-12 10:14:52 -07:00
voussoir f4455f5a82 Add return to onchange. 2020-09-12 10:14:06 -07:00
voussoir cd5106df59 Rename color_3d_shadow -> color_shadow. 2020-09-09 15:58:04 -07:00
voussoir 0116d80740 Mark the current state and orderby links in bold. 2020-09-05 17:49:04 -07:00
voussoir d0e803aa66 Supply the orderby argument to channel.html template. 2020-09-05 17:48:29 -07:00
voussoir d140a580c3 Add .bold class. 2020-09-05 17:47:53 -07:00
voussoir 37df5a6443 Remove spacer <p>s and embrace the grid-gap. 2020-09-05 09:31:37 -07:00
voussoir 339fa6649f Remove useless one-tab container for sub box by better if placement. 2020-09-05 09:31:13 -07:00
voussoir e5910c55f2 Rename database column `download` to `state`. 2020-09-04 15:55:48 -07:00
voussoir 0ae041f001 Add whitelist/blacklist functionality to merge_params. 2020-09-04 15:10:58 -07:00
voussoir 7d3a9fe03e Add explanation of data-prompt-class et al.
I think I left these blank because I felt they should be obvious.
But I'd rather have it explicit.
2020-09-04 14:50:30 -07:00
voussoir fc4aebc4a4 Fix double "return return". 2020-09-04 14:48:50 -07:00
voussoir 98fae96a8a Add spinner.BAIL for cancelling spinner without launching callback. 2020-09-04 11:24:08 -07:00
voussoir 0518765f33 Add css/js class entry_with_history to automate adding the hook. 2020-09-04 11:18:41 -07:00
voussoir 26704c238e Fix catch ytapi.ChannelNotFound and return json 404. 2020-09-04 10:48:08 -07:00
voussoir 4af4985ac5 Add return to all onclicks, and ; to other javascript hooks. 2020-09-04 10:37:49 -07:00
voussoir afcea49135 Fine-tune use of let/const in spinner.js. 2020-09-03 15:57:07 -07:00
voussoir 03c366fff8 Replace var with let/const. 2020-09-03 15:44:58 -07:00
voussoir 2a5983b124 Change #content_body width from 95% to 98%. 2020-09-03 12:06:35 -07:00