Commit graph

400 commits

Author SHA1 Message Date
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
6b24b7416c Modifying search box reapplies download filter, removes cards.
Example: If you are using the /pending filter, and use the search
box to find some videos and ignore them, then those videos will
be removed from the DOM. That way they aren't still there when you
clear the text box to see the other pending videos.
2019-01-25 15:54:31 -08:00
c667ebd872 Batch requests & filterbox & update metadata
- Download / Ignore on multiple videos is batched into a single
  request, like it should have been all along.
- Text box at the top of the page lets you search for terms live
  instead of loading various ?q urls.
- Doing a force refresh will actually update the metadata of old
  videos instead of skipping them.
2019-01-23 21:22:09 -08:00
f1f12423b1 Changes
- Add thumbnails to the card (dynamically loaded)
- Add button for embedding the video
- Store video duration in db (use update script)
- Separate links for filter views with and without query.
2018-12-17 19:17:53 -08:00
ba1961349c It's been a while 2017-10-08 21:39:07 -07:00
72e121d585 minor improvement 2017-05-21 13:59:07 -07:00
a8faad6573 Improve channel management page
Select multiple videos with ctrl and shift
Simplify code to hide / show action buttons
2017-05-21 13:58:59 -07:00
1c85df8ba1 Add /videos to get overall list of videos. 2017-05-21 13:51:15 -07:00
2959673f74 Add Youtube.get_related_videos 2017-05-21 13:50:17 -07:00
7c7a9b881b rename some helper scripts 2016-12-12 19:50:41 -08:00
90eedca0d7 checkpoint 2016-12-06 22:11:09 -08:00
bd263b2ed7 checkpoint 2016-11-28 20:16:16 -08:00