Esempio n. 1
0
def create_response(data, url=False):
    reply = []
    # Should surely have a title, but just in case :P
    if 'title' in data:
        reply.append('{fuchsia}{b}%s{b}{c}' % data['title'])
    # Some length data ;)
    if 'duration' in data:
        length = data['duration']
        lenout = ''
        if length / 3600:  # > 1 hour
            lenout += '%dh ' % (length / 3600)
        if length / 60:
            lenout += '%dm ' % (length / 60 % 60)
            lenout += "%ds" % (length % 60)
        reply.append('{b}length{b} %s' % lenout)
    # Shitty video? FIND OUT!
    if 'rating' in data and 'ratingCount' in data:
        reply.append('{b}rated{b} %.2f/5.00 (%s)' % (
            data['rating'], add_commas(data['ratingCount'])
        ))
    # Number of views. Yuck.
    if 'viewCount' in data:
        reply.append('%s {b}views{b}' % add_commas(data['viewCount']))
    upload_time = parse_date(data['uploaded'])
    reply.append('by {fuchsia}{b}%s{b}{c} on {b}%s{b}' %
                 (data['uploader'], upload_time))
    # Dis shit not be child appr0ved
    if 'contentRating' in data:
        reply.append('{red}{b}NSFW{b}{red}')
    if url and data['player']['default']:
        url = data['player']['default'].split('&', 1)[0].strip()
        reply.append(url)
    return reply
Esempio n. 2
0
def create_response(data, url=False):
    reply = []
    reply.append('{fuchsia}{b}%s{b}{c}' % data['snippet']['title'])
    _len = data['contentDetails']['duration'].lstrip('PT').lower()
    reply.append(re.sub(r'(?P<n>[0-9])', '{b}\g<n>{b}', _len))
    reply.append('{b}+%s{b}/{b}-%s{b} likes' % (add_commas(data['statistics']['likeCount']), add_commas(data['statistics']['dislikeCount'])))
    reply.append('{b}%s{b} views' % add_commas(data['statistics']['viewCount']))
    upload_time = parse_date(data['snippet']['publishedAt'])
    reply.append('by {fuchsia}{b}%s{b}{c} on {b}%s{b}' % (data['snippet']['channelTitle'], upload_time))

    if 'contentRating' in data['contentDetails']:
        reply.append('{red}{b}NSFW{b}{red}')
    if url:
        reply.append('https://www.youtube.com/watch?v=' + data['id'])
    return reply
Esempio n. 3
0
def create_response(data, url=False):
    reply = []
    reply.append('{fuchsia}{b}%s{b}{c}' % data['snippet']['title'])
    _len = data['contentDetails']['duration'].lstrip('PT').lower()
    reply.append(re.sub(r'(?P<n>[0-9])', '{b}\g<n>{b}', _len))
    reply.append('{b}+%s{b}/{b}-%s{b} likes' %
                 (add_commas(data['statistics']['likeCount']),
                  add_commas(data['statistics']['dislikeCount'])))
    reply.append('{b}%s{b} views' %
                 add_commas(data['statistics']['viewCount']))
    upload_time = parse_date(data['snippet']['publishedAt'])
    reply.append('by {fuchsia}{b}%s{b}{c} on {b}%s{b}' %
                 (data['snippet']['channelTitle'], upload_time))

    if 'contentRating' in data['contentDetails']:
        reply.append('{red}{b}NSFW{b}{red}')
    if url:
        reply.append('https://www.youtube.com/watch?v=' + data['id'])
    return reply
Esempio n. 4
0
def soundcloud(code, input):
    """Automatically find the information from a soundcloud url and display it
       to users in a channel"""
    try:
        artist = input.group(1)
        title = input.group(2)
        # Should look like 'artist/song'
        data = web.json(uri % (artist, title, client))
        output = []
        # Get date first so we can add to the title
        year, month, day = data['created_at'].split()[0].split('/')
        # Should always have a title
        output.append('{pink}{b}%s{b}{c} ({pink}{b}%s/%s/%s{b}{c})' % (data['title'], month, day, year))
        # Should always have an artist
        output.append('uploaded by {pink}{b}%s{b}{c}' % data['user']['username'])
        # Genre!
        if data['genre']:
            output.append('{pink}{b}' + data['genre'] + '{b}{c}')
        # Playback count, if none, obviously don't add it
        if int(data['playback_count']) > 0:
            output.append('{pink}{b}%s{b}{c} plays' % add_commas(data['playback_count']))
        # Download count, if none, obviously don't add it
        if int(data['download_count']) > 0:
            output.append('{pink}{b}%s{b}{c} downloads' % add_commas(data['download_count']))
        # And the same thing with the favorites count
        if int(data['favoritings_count']) > 0:
            output.append('{pink}{b}%s{b}{c} favs' % add_commas(data['favoritings_count']))
        # Comments too!
        if int(data['comment_count']) > 0:
            output.append('{pink}{b}%s{b}{c} comments' % add_commas(data['comment_count']))
        # Tags!
        if len(data['tag_list'].split()) > 0:
            # Rap "taylor gang" "Hip Hop" "20 joints" traxxfdr
            quote = '"'
            tags = []
            tag_list = data['tag_list'].split()
            multi_word_tag = ''
            for tmp in tag_list:
                if tmp.startswith(quote):
                    # Start of a multi-word tag
                    multi_word_tag = tmp.strip(quote)
                elif tmp.endswith(quote):
                    # End of multi-word tag
                    multi_word_tag += ' ' + tmp.strip(quote)
                    tags.append(multi_word_tag)
                    multi_word_tag = ''
                elif len(multi_word_tag) > 0:
                    # It's a middle-word
                    multi_word_tag += ' ' + tmp
                else:
                    # It's just it's own tag. \o/
                    tags.append(tmp)

            for i in range(len(tags)):
                if len(tags[i].split()) > 1:
                    tags[i] = '(#{pink}{b}"%s"{b}{c})' % tags[i]
                else:
                    tags[i] = '(#{pink}{b}%s{b}{c})' % tags[i]
            output.append(' '.join(tags))
        return code.say(' - '.join(output))
    except:
        return
Esempio n. 5
0
def soundcloud(code, input):
    """Automatically find the information from a soundcloud url and display it
       to users in a channel"""
    try:
        artist = input.group(1)
        title = input.group(2)
        # Should look like 'artist/song'
        data = web.json(uri % (artist, title, client))
        output = []
        # Get date first so we can add to the title
        year, month, day = data['created_at'].split()[0].split('/')
        # Should always have a title
        output.append('{pink}{b}%s{b}{c} ({pink}{b}%s/%s/%s{b}{c})' % (data['title'], month, day, year))
        # Should always have an artist
        output.append('uploaded by {pink}{b}%s{b}{c}' % data['user']['username'])
        # Genre!
        if data['genre']:
            output.append('{pink}{b}' + data['genre'] + '{b}{c}')
        # Playback count, if none, obviously don't add it
        if int(data['playback_count']) > 0:
            output.append('{pink}{b}%s{b}{c} plays' % add_commas(data['playback_count']))
        # Download count, if none, obviously don't add it
        if int(data['download_count']) > 0:
            output.append('{pink}{b}%s{b}{c} downloads' % add_commas(data['download_count']))
        # And the same thing with the favorites count
        if int(data['favoritings_count']) > 0:
            output.append('{pink}{b}%s{b}{c} favs' % add_commas(data['favoritings_count']))
        # Comments too!
        if int(data['comment_count']) > 0:
            output.append('{pink}{b}%s{b}{c} comments' % add_commas(data['comment_count']))
        # Tags!
        if len(data['tag_list'].split()) > 0:
            # Rap "taylor gang" "Hip Hop" "20 joints" traxxfdr
            quote = '"'
            tags = []
            tag_list = data['tag_list'].split()
            multi_word_tag = ''
            for tmp in tag_list:
                if tmp.startswith(quote):
                    # Start of a multi-word tag
                    multi_word_tag = tmp.strip(quote)
                elif tmp.endswith(quote):
                    # End of multi-word tag
                    multi_word_tag += ' ' + tmp.strip(quote)
                    tags.append(multi_word_tag)
                    multi_word_tag = ''
                elif len(multi_word_tag) > 0:
                    # It's a middle-word
                    multi_word_tag += ' ' + tmp
                else:
                    # It's just it's own tag. \o/
                    tags.append(tmp)

            for i in range(len(tags)):
                if len(tags[i].split()) > 1:
                    tags[i] = '(#{pink}{b}"%s"{b}{c})' % tags[i]
                else:
                    tags[i] = '(#{pink}{b}%s{b}{c})' % tags[i]
            output.append(' '.join(tags))
        return code.say(' - '.join(output))
    except:
        return