mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-09-24 16:30:27 +08:00
Merge pull request #3392 from anatskiy/phdcomics_fix
Fix PHD Comics plugin
This commit is contained in:
@@ -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();
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user