1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
# encoding: UTF-8
# api: streamtuner2
# title: redditâ›±
# description: Music recommendations from reddit /r/music and associated subreddits.
# version: 0.8
# type: channel
# url: http://reddit.com/r/Music
# category: playlist
# config:
# { name: reddit_pages, type: int, value: 2, description: Number of pages to fetch. }
# { name: filter_walledgardens, type: boolean, value: 1, description: Filter walled gardens (soundcloud/spotify/…) if there's no player. }
# { name: reddit_keep_all, type: boolean, value: 0, description: Keep all web links (starts a browser for websites/news). }
# png:
# iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJ1BMVEUAAAAcICX/AABHSk1jZ299hYz/bmajq6//lY/d0M3C1+3T7P38+/iaLhuGAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgF
# HUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQffBRUXIyQbWArCAAAAh0lEQVQI12Pg3g0BDLtXrVq1eveq3Qy7gIxCU9dqEGO11/ZKbzBDenUIUM3u7cGi1UDFW0TE55wsdpZikAw/
# eebMnMmHGVxqDuUc0zzpynD4zIk5J3vOSDNsOQMG1gy7bI5HTq85Ws2wu/jM9PIzrkArdhmXlzuuXg00eVd5+epVqxmgrtgNAOWeS1KYtcY4AAAAAElFTkSuQmCC
# priority: extra
#
# Just imports Youtube links from music-related subreddits.
# Those are usually new bands or fresh releases, or favorite
# user selections. The category/subreddit list is filtered
# for a minimum quote of usable links (namely Youtube URLs).
#
# If you have a custom audio player available for Soundcloud,
# Spotify or Bandcamp, you can enable to retain such links.
# (For example configure `soundcli` for "audio/soundcloud".)
|
|
|
|
>
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
# encoding: UTF-8
# api: streamtuner2
# title: reddit
# description: Music recommendations from reddit /r/music and associated subreddits.
# version: 0.9
# type: channel
# url: http://reddit.com/r/Music
# category: playlist
# config:
# { name: reddit_pages, type: int, value: 2, description: Number of pages to fetch. }
# { name: filter_walledgardens, type: boolean, value: 1, description: Filter walled gardens (soundcloud/spotify/…) if there's no player. }
# { name: reddit_keep_all, type: boolean, value: 0, description: Keep all web links (starts a browser for websites/news). }
# png:
# iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJ1BMVEUAAAAcICX/AABHSk1jZ299hYz/bmajq6//lY/d0M3C1+3T7P38+/iaLhuGAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgF
# HUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQffBRUXIyQbWArCAAAAh0lEQVQI12Pg3g0BDLtXrVq1eveq3Qy7gIxCU9dqEGO11/ZKbzBDenUIUM3u7cGi1UDFW0TE55wsdpZikAw/
# eebMnMmHGVxqDuUc0zzpynD4zIk5J3vOSDNsOQMG1gy7bI5HTq85Ws2wu/jM9PIzrkArdhmXlzuuXg00eVd5+epVqxmgrtgNAOWeS1KYtcY4AAAAAElFTkSuQmCC
# priority: extra
#
# Scans music-related subreddits for MP3/Youtube/Soundcloud
# links.
# Those are usually new bands or fresh releases, or favorite
# user selections. The category/subreddit list is filtered
# for a minimum quote of usable links (namely Youtube URLs).
#
# If you have a custom audio player available for Soundcloud,
# Spotify or Bandcamp, you can enable to retain such links.
# (For example configure `soundcli` for "audio/soundcloud".)
|
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
|
"ElectronicBlues", "electrohouse", #"electronicmagic",
"ElectronicMusic", "electropop", "electroswing", #"ExperimentalMusic",
"fidget", "frenchelectro", "frenchhouse", "funkhouse",
"futurebeats", "FutureFunkAirlines", "FutureGarage",
"futuresynth", "gabber", "glitch", "Grime", "happyhardcore",
"hardhouse", "hardstyle", "house", "idm", "industrialmusic", "ItaloDisco",
"latinhouse", "LiquidDubstep", "mashups", "minimal", "moombahcore",
"nightstep", "OldskoolRave", "partymusic", "plunderphonics", "psybient",
"PsyBreaks", "psytrance", "purplemusic", "raggajungle", "RealDubstep",
"swinghouse", "tech_house", "Techno", "Trance", "tranceandbass",
"tribalbeats", "ukfunky", "witchhouse", "wuuB"],
# Rock / Metal
"Rock",
["80sHardcorePunk", "90sAlternative", "90sPunk", "90sRock",
|
|
|
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
|
"ElectronicBlues", "electrohouse", #"electronicmagic",
"ElectronicMusic", "electropop", "electroswing", #"ExperimentalMusic",
"fidget", "frenchelectro", "frenchhouse", "funkhouse",
"futurebeats", "FutureFunkAirlines", "FutureGarage",
"futuresynth", "gabber", "glitch", "Grime", "happyhardcore",
"hardhouse", "hardstyle", "house", "idm", "industrialmusic", "ItaloDisco",
"latinhouse", "LiquidDubstep", "mashups", "minimal", "moombahcore",
"nightstep", "OldskoolRave", "Outrun", "partymusic", "plunderphonics", "psybient",
"PsyBreaks", "psytrance", "purplemusic", "raggajungle", "RealDubstep",
"swinghouse", "tech_house", "Techno", "Trance", "tranceandbass",
"tribalbeats", "ukfunky", "witchhouse", "wuuB"],
# Rock / Metal
"Rock",
["80sHardcorePunk", "90sAlternative", "90sPunk", "90sRock",
|
207
208
209
210
211
212
213
214
215
216
217
218
219
220
|
"phish", "Pinback", "PinkFloyd", "porcupinetree", "prettylights",
"Puscifer", "Queen", "Radiohead", "RATM", "RedHotChiliPeppers",
"The_Residents", "RiseAgainst", "Rush", "SigurRos", "Slayer", "slipknot",
"SmashingPumpkins", "SparksFTW", "TeganAndSara", "TheKillers",
"TheOffspring", "TheStrokes", "TheMagneticZeros", "tragicallyhip",
"ToolBand", "U2Band", "Umphreys", "UnicornsMusic", "velvetunderground",
"Ween", "weezer", "WeirdAl", "yesband", "Zappa"],
]
# static
def update_categories(self):
pass
|
>
>
>
>
>
>
|
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
|
"phish", "Pinback", "PinkFloyd", "porcupinetree", "prettylights",
"Puscifer", "Queen", "Radiohead", "RATM", "RedHotChiliPeppers",
"The_Residents", "RiseAgainst", "Rush", "SigurRos", "Slayer", "slipknot",
"SmashingPumpkins", "SparksFTW", "TeganAndSara", "TheKillers",
"TheOffspring", "TheStrokes", "TheMagneticZeros", "tragicallyhip",
"ToolBand", "U2Band", "Umphreys", "UnicornsMusic", "velvetunderground",
"Ween", "weezer", "WeirdAl", "yesband", "Zappa"],
"DJs / Playlist →",
["DJs", "PirateRadio", "Spotify", "Turntablists", "GroveSharkPlaylists"],
"Midi",
["midimusic", "MidiCovers", "ModernMidiMusic", "StarboundSongbase", "synthesizers"],
]
# static
def update_categories(self):
pass
|
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
|
# convert
r = []
for row in (ls["data"] for ls in data):
# find links in text posts
text_urls = re.findall("\]\((https?://(?:www\.)?youtu[^\"\'\]\)]+)", row.get("selftext", ""))
url_ext = (re.findall("\.(\w+)$", row["url"]) or [None])[0]
listformat = "href"
state = "gtk-media-play"
# Youtube URLs
if re.search("youtu\.?be|vimeo|dailymotion", row["url"]):
format = "video/youtube"
listformat = "srv"
# direct MP3/Ogg
elif url_ext in ("mp3", "ogg", "flac", "aac", "aacp"):
format = "audio/" + url_ext
listformat = "srv"
# playlists?
elif url_ext in ("m3u", "pls", "xspf"):
listformat = url_ext
format = "audio/x-unknown"
# links from selftext
|
|
|
|
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
|
# convert
r = []
for row in (ls["data"] for ls in data):
# find links in text posts
text_urls = re.findall("\]\((https?://(?:www\.)?youtu[^\"\'\]\)]+)", row.get("selftext", ""))
url_ext = (re.findall("\.(\w+)(?:$|[?&])", row["url"]) or [""])[0].lower()
listformat = "href"
state = "gtk-media-play"
# Youtube URLs
if re.search("youtu\.?be|vimeo|dailymotion", row["url"]):
format = "video/youtube"
listformat = "srv"
# direct MP3/Ogg
elif url_ext in ("mp3", "ogg", "flac", "aac", "aacp", "mid", "midi"):
format = "audio/" + url_ext
listformat = "srv"
# playlists?
elif url_ext in ("m3u", "pls", "xspf"):
listformat = url_ext
format = "audio/x-unknown"
# links from selftext
|