Merge pull request #3392 from anatskiy/phdcomics_fix

Fix PHD Comics plugin
This commit is contained in:
Björn Grüning
2017-01-08 19:34:24 +01:00
committed by GitHub
2 changed files with 24 additions and 18 deletions
@@ -8,7 +8,7 @@ log = logging.getLogger(__name__)
def main(trans, webhook):
error = ''
data = {}
comic_src = ''
try:
# Third-party dependencies
@@ -16,7 +16,7 @@ def main(trans, webhook):
from bs4 import BeautifulSoup
except ImportError as e:
log.exception(e)
return {}
return {'success': False, 'error': str(e)}
# Get latest id
if 'latest_id' not in webhook.config.keys():
@@ -33,11 +33,16 @@ def main(trans, webhook):
url = 'http://www.phdcomics.com/comics/archive.php?comicid=%d' % \
random_id
content = urllib.urlopen(url).read()
soap = BeautifulSoup(content, 'html.parser')
comics_src = soap.find_all('img', id='comic')[0].attrs.get('src')
data = {'src': comics_src}
soup = BeautifulSoup(content, 'html.parser')
comic_img = soup.find_all('img', id='comic2')
try:
comic_src = comic_img[0].attrs.get('src')
except IndexError:
pattern = '<img id=comic2 name=comic2 src=([\w:\/\.]+)'
comic_src = re.search(pattern, content).group(1)
except Exception as e:
error = str(e)
return {'success': not error, 'error': error, 'data': data}
return {'success': not error, 'error': error, 'src': comic_src}
@@ -16,7 +16,7 @@ $(document).ready(function() {
imgTemplate: _.template('<img src="<%= src %>"">'),
events: {
'click #phdcomics-random': 'getRandomPHDComics'
'click #phdcomics-random': 'getRandomComic'
},
initialize: function() {
@@ -25,31 +25,32 @@ $(document).ready(function() {
render: function() {
this.$el.html(this.appTemplate());
this.phdComicsImg = this.$('#phdcomics-img');
this.getRandomPHDComics();
this.$comicImg = this.$('#phdcomics-img');
this.getRandomComic();
return this;
},
getRandomPHDComics: function() {
getRandomComic: function() {
var me = this,
url = galaxyRoot + 'api/webhooks/phdcomics/get_data';
this.phdComicsImg.html($('<div/>', {id: 'phdcomics-loader'}));
this.$comicImg.html($('<div/>', {
id: 'phdcomics-loader'
}));
$.getJSON(url, function(data) {
if (data.success) {
me.phdComics = {src: data.data.src};
me.renderImg();
me.renderImg(data.src);
} else {
console.log('[ERROR] "' + url + '":\n' + data.error);
console.error('[ERROR] "' + url + '":\n' + data.error);
}
});
},
renderImg: function() {
this.phdComicsImg.html(this.imgTemplate({src: this.phdComics.src}));
renderImg: function(src) {
this.$comicImg.html(this.imgTemplate({src: src}));
}
});
var PHDComicsApp = new PHDComicsAppView;
new PHDComicsAppView();
});