@@ -1,10 +1,10 @@
 # encoding: UTF-8
 # api: streamtuner2
-# title: redditâ›±
+# title: reddit
 # description: Music recommendations from reddit /r/music and associated subreddits.
-# version: 0.8
+# 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. }
@@ -14,11 +14,12 @@
 #   iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJ1BMVEUAAAAcICX/AABHSk1jZ299hYz/bmajq6//lY/d0M3C1+3T7P38+/iaLhuGAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgF
 #   HUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQffBRUXIyQbWArCAAAAh0lEQVQI12Pg3g0BDLtXrVq1eveq3Qy7gIxCU9dqEGO11/ZKbzBDenUIUM3u7cGi1UDFW0TE55wsdpZikAw/
 #   eebMnMmHGVxqDuUc0zzpynD4zIk5J3vOSDNsOQMG1gy7bI5HTq85Ws2wu/jM9PIzrkArdhmXlzuuXg00eVd5+epVqxmgrtgNAOWeS1KYtcY4AAAAAElFTkSuQmCC
 # priority: extra
 #
-# Just imports Youtube links from music-related subreddits.
+# 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,
@@ -92,11 +93,11 @@
         "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",
+        "nightstep", "OldskoolRave", "Outrun", "partymusic", "plunderphonics", "psybient",
         "PsyBreaks", "psytrance", "purplemusic", "raggajungle", "RealDubstep",
         "swinghouse", "tech_house", "Techno", "Trance", "tranceandbass",
         "tribalbeats", "ukfunky", "witchhouse", "wuuB"],
 
         # Rock / Metal
@@ -209,10 +210,16 @@
         "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):
@@ -254,20 +261,20 @@
         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]
+            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"):
+            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