aboutsummaryrefslogtreecommitdiffstatshomepage
Commit message (Collapse)AuthorAgeFilesLines
...
* fix id for station info downloadgarret2023-09-261-1/+1
|
* Cache station metadata for a daygarret2023-09-251-15/+25
| | | | | | | | | | | Station metadata changes extremely rarely, if ever, so it seems awfully silly to keep downloading the exact same metadata every time we extract. Wastes requests, wastes time (300ms round trip for me) This commit makes it so station metadata is cached for a day, and cached data is used in place of downloaded metadata when available. Closes #16
* check end of broadcast day, not end of air timegarret2023-09-102-1/+10
| | | | | | | | | | | | | The old behaviour assumed programmes were deleted precisely a week after their end time. This isn't actually the case though, as long as it's within a week of the _broadcast day_, the site will let you. This lead to the extractor bailing out (Programme is no longer available) when in fact the programme was still playable on the site. The fix uses the same logic as RadikoTime.broadcast_day to find the broadcast day (TODO: one func for both?), then sets the time to 05:00:00 the next day - i.e. the start of a new broadcast day.
* add debug message for station not foundgarret2023-09-081-0/+1
|
* don't generate info twicegarret2023-09-081-1/+1
|
* Migrate to unified time handler thinggarret2023-08-242-56/+142
| | | | | now only one thing gets passed around and it has most everything we need closes #11
* update testsgarret2023-08-241-84/+94
|
* bail sooner when programme is unavailablegarret2023-08-241-18/+5
| | | | ie dont do the dumb noformats vars, just raise the message there and then
* Add timefree availability checkgarret2023-08-151-2/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | afaict nhk doesn't have timefree, and it says as much on the programme pages The download doesn't fail though, you just get a loop of elevator music and an apology that it's not available (lasting the duration of the programme) from tsDetail.js tsInNg = playable in the area tsOutNg = playable outside the area (maybe - just a guess really, but seems to line up) outside station area + playable in area + not playable outside = not available in your area outside station area + not playable in area + not playable outside area = not available on timefree inside station area + not playable in area = not available on timefree we'll always be in the station area, so we only have to check tsInNg included a message about NHK Radiru because so far i've only seen NHK programmes be unavailable one day i should make the programme_meta func return a dict or something instead of just adding stuff on the end ad infinitum closes #15
* encode b64 partialkey as asciigarret2023-07-291-1/+1
| | | | | | | | | fixes #14 new headers thing made b'bytes' into "b'bytes'", instead of just 'bytes' so it sent eg `X-Radiko-Partialkey: b'9lOaAg+2TZRSF+IsiDnUJg=='` likely a fix for this upstream soon, but will do the sensible thing and make it ascii myself https://discord.com/channels/807245652072857610/1112613156934668338/1134879336512634880 (yt-dlp discord)
* add debug incantations to check for proper key offset/lengthgarret2023-07-291-0/+5
|
* switch from Response.info() to Response.headersgarret2023-07-291-1/+1
| | | | | ERROR: Response.info() is deprecated, use Response.headers see #14
* update search testsgarret2023-07-151-10/+10
|
* handle multi-paged search resultsgarret2023-07-151-4/+13
| | | | fixes #13
* remove unused functiongarret2023-07-131-4/+0
|
* fix wrong comparison in ShareIEgarret2023-07-051-1/+1
|
* just fucking deepl itgarret2023-07-051-1/+1
|
* add station as uploadergarret2023-07-041-0/+1
| | | | so when embedding it gets tagged as the artist
* update readmegarret2023-07-041-3/+8
|
* fix typogarret2023-07-041-1/+1
| | | | oops
* add note about law abiding citizen branchgarret2023-07-041-0/+1
|
* update readme with tracklist stuffgarret2023-07-041-0/+2
|
* get better artist name in tracklistgarret2023-07-041-5/+9
|
* add tracklist chapters extractiongarret2023-07-041-0/+14
| | | | closes #6
* add Station Button embed extractorgarret2023-06-271-0/+71
| | | | closes #4
* loop through search results the old-fashioned waygarret2023-06-191-7/+2
| | | | not smort enough for traverse_obj
* streamline xml parsing with XPathsgarret2023-06-191-38/+38
|
* update testsgarret2023-06-191-28/+28
| | | | one of these days i should look in to a way to do this automatically
* add SearchIE testsgarret2023-06-131-0/+25
|
* add playlist id to SearchIEgarret2023-06-131-0/+8
|
* add ShareIE testgarret2023-06-131-0/+24
|
* handle 29-hour time in ShareIEgarret2023-06-131-0/+10
|
* add history to search regexgarret2023-06-131-1/+1
|
* update readmegarret2023-06-131-4/+3
|
* relax station ID regexgarret2023-06-091-2/+2
| | | | FM_OKINAWA, FM_OITA
* add note about why not japanesegarret2023-06-051-0/+5
|
* shitgarret2023-06-041-1/+1
|
* add message asking for reports if region mismatchgarret2023-06-041-1/+1
|
* add share link extractorgarret2023-06-041-0/+10
|
* update readme for search extractorgarret2023-05-301-1/+6
|
* increment version numberv0.2.0garret2023-05-301-1/+1
|
* store all cache in one placegarret2023-05-301-2/+2
| | | | | this means it cant see the old tokens who cares, they expire in an hour
* small readme updatesgarret2023-05-291-3/+3
|
* some semblance of code cleanupgarret2023-05-291-246/+248
| | | | wall of constants abandoned as a lost cause
* somewhat quick and dirty search extractorgarret2023-05-291-0/+32
|
* check if url time is between start/end of programmegarret2023-05-221-3/+4
| | | | urls in the middle of the programme are valid and do occur in the wild
* correct mismatched release/timestampgarret2023-05-101-15/+16
|
* don't bother trying with downloading currently-live timefreegarret2023-05-101-8/+9
|
* throw error for expired/not yet aired/live programmesgarret2023-05-091-6/+34
|
* re-index regions if station not presentgarret2023-05-081-1/+4
| | | | | stations change names, new ones get added, etc assume it's something like this and try to correct for it before kicking you out with an error