3e27e6e2e8
Add separate API endpoint for add_channel, apply to web ui.
...
Previously, the "add channel" box was just calling refresh, which
implicitly adds the channel. This adds a separate endpoint for
add_channel, and as a bonus the web ui will navigate you to the
channel after it has been loaded.
2020-05-21 22:16:02 -07:00
480eeb9ac3
Update common.js request, get, post functions like Etiquette.
2020-05-21 20:29:43 -07:00
5c4b2e9d21
Add jsonify.py.
2020-05-21 20:28:52 -07:00
21af1576c2
Move endpoints into separate files like Etiquette.
2020-05-21 20:04:02 -07:00
13a72ec7fc
Move CSS and JS into separate folders under static.
2020-05-21 19:43:45 -07:00
55d0bb463c
Add utility merge_db.py.
2020-05-21 17:33:59 -07:00
57d87560a4
Add interface for setting automark state.
2020-05-21 17:28:34 -07:00
0c5823cbeb
Indicate automark state on /channels listing.
2020-05-21 17:26:12 -07:00
34f24d9940
Let default state of automark be pending, not None.
2020-05-21 17:25:06 -07:00
af494e2684
Rename CSS class channel_card_downloaded -> channel_card_no_pending.
2020-05-21 17:22:07 -07:00
e165b16edc
Rstrip the "Z" off of timestamps.
...
This only started occuring recently.
2020-05-06 21:23:24 -07:00
cd7a59cbfa
Sort channel names case-insensitive.
2020-05-06 21:23:02 -07:00
0562c51d6c
Use mark_state instead of doing the sql update here.
2020-04-15 16:34:33 -07:00
2f5ec40b89
Big: Object-oriented channels & videos, match Etiquette structure.
...
- Channels and videos are now objects instead of just dictionaries.
- Copied Etiquette's use of cachemanager mixin to cache those objects.
- Copied Etiquette's use of sql_ methods.
- Copied Etiquette's use of namespaced javascript.
- Copied Etiquette's use of config file.
- Redid video_card css to use grid, better on mobile.
- Improved usage of URL parameters with class=merge_class.
- Wrote some actual content on readme.
2020-04-05 18:59:16 -07:00
4689609c97
Add links for sort by date, duration, views, random.
2020-04-03 14:24:48 -07:00
1bc3df5efe
Split DB_INIT into pragmas and full init, like Etiquette.
2020-04-03 11:23:51 -07:00
11a147fbcd
Use insert_filler for add_channel.
2020-04-03 11:12:56 -07:00
718399806a
Add channel_name to videos before returning them, show on listings.
...
Previously, when viewing a /videos listing, there was a link
called (Chan) to bring you to the channel page, but since videos
only carried author_id and not author_name it was always kind of
ugly. This will inject that attribute on the way out.
I know, this would be more properly written as an SQL join in the
first place, but my row-dict conversion isn't set up for that and
I'm planning on converting this all to object-based returns instead
of dicts soon.
2020-04-03 08:49:35 -07:00
1b456bf900
Let embedded video fit width of the video card instead of hard px.
...
This makes the page much easier to use on mobile. On desktop I think
the new size may be a little overwhelming but I'll try getting used
to it, and anyway I think it simply makes more sense than the
arbitrary size from earlier.
2020-04-03 08:43:47 -07:00
275db1e608
Fix typo googleapicliet -> googleapiclient.
2020-03-28 17:07:18 -07:00
4effa64694
Move endpoints to new endpoints.py.
2020-03-28 17:05:43 -07:00
1b2778ca7a
Rename ycdl_flask.py to common.py.
2020-03-28 16:56:06 -07:00
790fbd7b9a
Remove this ifmain.
2020-03-28 16:53:39 -07:00
d407326392
Move make_json_response into new jsonify.py.
2020-03-28 16:51:40 -07:00
c7ef2dd41b
Rearrange these imports.
2020-03-28 16:49:33 -07:00
428ada8c83
Rename inner ycdl_flask folder to backend.
...
Following the same thing as I did with etiquette.
2020-03-28 16:47:37 -07:00
201ae70ba0
Use argparse to expose refresher thread controls.
2020-03-28 16:44:47 -07:00
9fe7057021
Move refresher thread launcher into a function.
2020-03-28 16:42:54 -07:00
d0bfbaadfe
Add method insert_playlist.
2020-03-17 20:53:18 -07:00
1a7662b6bd
Add method get_playlist_videos.
2020-03-17 20:53:10 -07:00
08ae8a9394
Update reference to ycdldb.
2020-03-17 20:52:50 -07:00
9b227c6e5f
Add link to random pending videos on homepage.
2020-03-13 14:38:27 -07:00
b5f892d595
Add ?orderby url parameter.
2020-03-11 18:02:09 -07:00
672abf9d86
Hold Shift to not deselect videos after setting a state.
2020-03-11 14:30:56 -07:00
26328865e1
Pass list of all states to page for autogeneration of elements.
2020-03-11 14:30:12 -07:00
b48c2fc37c
Rename ycdl.py -> ycdldb.py; add exceptions.py.
2020-03-11 14:27:27 -07:00
3d3da805b6
Stop selecting text when shift-clicking to select videos.
2020-03-11 13:01:55 -07:00
81b864ec19
main should return args.func(args) value.
2020-02-08 17:20:27 -08:00
6691c49481
Add parameter skip_failures to refresh_all_channels.
2020-01-19 10:53:49 -08:00
03b5e97d33
Add ycdl_logo.svg.
...
It's just the favicon anyway.
2020-01-19 10:51:54 -08:00
29d819fe97
Add a refresher thread to keep your sub box up to date.
2020-01-06 22:07:43 -08:00
78ce6a6f41
Add views column and some other database changes.
...
And various other changes which have been sitting here for too long.
2020-01-06 22:07:25 -08:00
420a14bb88
Add a logger to ytapi.
2020-01-06 22:03:18 -08:00
4706a0a6a7
Add 'sub box' link to 100 latest videos from all channels.
2020-01-06 22:01:58 -08:00
1c69a2aa59
Personal changes.
2020-01-06 22:01:23 -08:00
a29a637bcb
Put the refresh buttons inside spans.
2020-01-06 21:56:45 -08:00
2826e8972f
Add link directly to channel's pending page.
2020-01-06 21:56:22 -08:00
12c2b882f2
Add the meta viewport property.
2020-01-06 21:55:01 -08:00
9160d25293
Fix seconds_to_hms bug!
...
Embarrassing. If M was zero then you got HH:SS.
2020-01-06 20:25:58 -08:00
74607b7e60
Index (author, download) so that listing all channels is faster.
2019-01-31 17:43:01 -08:00