aboutsummaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorGravatar dngfx2018-09-23 00:55:36 +0100
committerGravatar dngfx2018-09-23 00:55:36 +0100
commite5283ed2e20e95df58c7a162fe76f88ebf3694e1 (patch)
tree59d34c61499cf85bad37179cb59a853e479ff60e /modules
parentclear channel.games properly. (diff)
signature
Update last.fm to include a youtube link. Also change the module name to last.fm
Diffstat (limited to 'modules')
-rw-r--r--modules/lastfm.py15
-rw-r--r--modules/youtube.py18
2 files changed, 31 insertions, 2 deletions
diff --git a/modules/lastfm.py b/modules/lastfm.py
index e448d9ea..3675bbd5 100644
--- a/modules/lastfm.py
+++ b/modules/lastfm.py
@@ -5,8 +5,10 @@ import Utils
URL_SCROBBLER = "http://ws.audioscrobbler.com/2.0/"
class Module(object):
+ _name = "last.fm"
def __init__(self, bot, events, exports):
self.bot = bot
+ self.events = events
exports.add("set", {"setting": "lastfm",
"help": "Set username on last.fm"})
@@ -34,6 +36,14 @@ class Module(object):
track_name = now_playing["name"]
artist = now_playing["artist"]["#text"]
+ ytquery = " - ".join([artist, track_name])
+
+ short_url = self.events.on(
+ "get.youtubefromlastfm").call_for_result(
+ query=ytquery)
+
+ short_url = " -- " + short_url if short_url else ""
+
info_page = Utils.get_url(URL_SCROBBLER, get_params={
"method": "track.getInfo", "artist": artist,
"track": track_name, "autocorrect": "1",
@@ -55,8 +65,9 @@ class Module(object):
"s" if play_count > 1 else "")
event["stdout"].write(
- "%s is now playing: %s - %s%s%s" % (
- shown_username, artist, track_name, play_count, tags))
+ "%s is now playing: %s - %s%s%s%s" % (
+ shown_username, artist, track_name, play_count, tags,
+ short_url))
else:
event["stderr"].write(
"The user '%s' has never scrobbled before" % (
diff --git a/modules/youtube.py b/modules/youtube.py
index 3d075f64..20dc072b 100644
--- a/modules/youtube.py
+++ b/modules/youtube.py
@@ -24,6 +24,8 @@ class Module(object):
help="Find a video on youtube", usage="[query]")
events.on("received.message.channel").hook(self.channel_message)
+ events.on("get.youtubefromlastfm").hook(self.get_yt_from_lastfm)
+
exports.add("channelset", {"setting": "auto-youtube",
"help": "Disable/Enable automatically getting info from "
"youtube URLs", "validate": Utils.bool_or_none})
@@ -63,6 +65,22 @@ class Module(object):
video_title, video_duration, video_uploader, "{:,}".format(
int(video_views)), video_opinions, URL_YOUTUBESHORT % video_id)
+ def get_yt_from_lastfm(self, event):
+ search = event["query"]
+ video_id = ""
+
+ search_page = Utils.get_url(URL_YOUTUBESEARCH,
+ get_params={"q": search, "part": "snippet",
+ "maxResults": "1", "type": "video",
+ "key": self.bot.config["google-api-key"]},
+ json=True)
+
+ if search_page:
+ if search_page["pageInfo"]["totalResults"] > 0:
+ video_id = search_page["items"][0]["id"]["videoId"]
+ return "https://youtu.be/%s" % video_id
+
+
def yt(self, event):
video_id = None
search = None