Skip to content

Commit

Permalink
Add simple support for posts on songs
Browse files Browse the repository at this point in the history
  • Loading branch information
kevinwuhoo committed Jun 8, 2015
1 parent 41bc0b6 commit 797adce
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 1 deletion.
9 changes: 9 additions & 0 deletions hypepy/blog.py
@@ -0,0 +1,9 @@
class Blog(object):
def __init__(self, id_, name, url, external_post_url):
self.id_ = id_
self.name = name
self.url = url
self.external_post_url = external_post_url

def __str__(self):
return self.name
3 changes: 3 additions & 0 deletions hypepy/hypem_urls.py
Expand Up @@ -2,3 +2,6 @@

HYPEM_SERVE_PATH = 'serve/source/{}/{}'
HYPEM_SERVE_URL = HYPEM_AUTHORITY_URL + HYPEM_SERVE_PATH

HYPEM_POSTS_PATH = 'inc/serve_activity_info.php?type=reposts&id={}&skip=0&ts={}'
HYPEM_POSTS_URL = HYPEM_AUTHORITY_URL + HYPEM_POSTS_PATH
22 changes: 21 additions & 1 deletion hypepy/song.py
@@ -1,7 +1,9 @@
import os
import time

from hypem_urls import *
from hypepy import session
from hypepy.blog import Blog
from mutagen.mp3 import MP3
from mutagen.id3 import ID3, APIC, TIT2, TPE1
from bs4 import BeautifulSoup
Expand All @@ -27,7 +29,7 @@ def __init__(self, id_, title, artist, thumb_url, ts, key, track_url):
self._mp3 = None
self._loved_count = None
self._repost_count = None
self._posts = []
self._posts = None

def download_url(self):
if not self._download_url:
Expand Down Expand Up @@ -80,6 +82,24 @@ def loved_count(self):
self._get_loved_repost_count()
return self._loved_count

def posts(self):
if self._posts is None:
req = session.get(HYPEM_POSTS_URL.format(self.id_, int(time.time())))
soup = BeautifulSoup(req.text)

self._posts = []
for post in soup.find_all('p', class_='more-excerpts'):
blog = post.find('a', class_='blog-fav-off')

name = blog.get_text(strip=True)
url = blog['href']
id_ = url.split('/')[-1]
external_post_url = post.find('a', class_='readpost')['href']

self._posts.append(Blog(id_, name, url, external_post_url))

return self._posts

def _get_loved_repost_count(self):
if not self._loved_count or not self._repost_count:
req = session.get(self.track_url)
Expand Down

0 comments on commit 797adce

Please sign in to comment.