You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
133 lines
3.4 KiB
133 lines
3.4 KiB
Page.Userscript = new Class({
|
|
|
|
Extends: PageBase,
|
|
|
|
name: 'userscript',
|
|
has_tab: false,
|
|
|
|
options: {
|
|
'onOpened': function(){
|
|
App.fireEvent('unload');
|
|
App.getBlock('header').hide();
|
|
}
|
|
},
|
|
|
|
indexAction: function(param){
|
|
var self = this;
|
|
|
|
self.el.adopt(
|
|
self.frame = new Element('div.frame.loading', {
|
|
'text': 'Loading...'
|
|
})
|
|
);
|
|
|
|
var url = window.location.href.split('url=')[1];
|
|
|
|
Api.request('userscript.add_via_url', {
|
|
'data': {
|
|
'url': url
|
|
},
|
|
'onComplete': function(json){
|
|
self.frame.empty();
|
|
self.frame.removeClass('loading');
|
|
|
|
if(json.error)
|
|
self.frame.set('html', json.error);
|
|
else {
|
|
var item = new Block.Search.Item(json.movie);
|
|
self.frame.adopt(item);
|
|
item.showOptions();
|
|
}
|
|
}
|
|
});
|
|
|
|
}
|
|
|
|
});
|
|
|
|
var UserscriptSettingTab = new Class({
|
|
|
|
tab: '',
|
|
content: '',
|
|
|
|
initialize: function(){
|
|
var self = this;
|
|
|
|
App.addEvent('load', self.addSettings.bind(self))
|
|
|
|
},
|
|
|
|
addSettings: function(){
|
|
var self = this;
|
|
|
|
self.settings = App.getPage('Settings')
|
|
self.settings.addEvent('create', function(){
|
|
|
|
// See if userscript can be installed
|
|
var userscript = false;
|
|
try {
|
|
if(Components.interfaces.gmIGreasemonkeyService)
|
|
userscript = true
|
|
}
|
|
catch(e){
|
|
userscript = Browser.chrome === true;
|
|
}
|
|
|
|
var host_url = window.location.protocol + '//' + window.location.host;
|
|
|
|
self.settings.createGroup({
|
|
'name': 'userscript',
|
|
'label': 'Install the bookmarklet' + (userscript ? ' or userscript' : ''),
|
|
'description': 'Easily add movies via imdb.com, appletrailers and more'
|
|
}).inject(self.settings.tabs.automation.content, 'top').adopt(
|
|
(userscript ? [new Element('a.userscript.button', {
|
|
'text': 'Install userscript',
|
|
'href': Api.createUrl('userscript.get')+randomString()+'/couchpotato.user.js',
|
|
'target': '_self'
|
|
}), new Element('span.or[text=or]')] : null),
|
|
new Element('span.bookmarklet').adopt(
|
|
new Element('a.button.green', {
|
|
'text': '+CouchPotato',
|
|
'href': "javascript:void((function(){var e=document.createElement('script');e.setAttribute('type','text/javascript');e.setAttribute('charset','UTF-8');e.setAttribute('src','" +
|
|
host_url + Api.createUrl('userscript.bookmark') +
|
|
"?host="+ encodeURI(host_url + Api.createUrl('userscript.get')+randomString()+'/') +
|
|
"&r='+Math.random()*99999999);document.body.appendChild(e)})());",
|
|
'target': '',
|
|
'events': {
|
|
'click': function(e){
|
|
(e).stop()
|
|
alert('Drag it to your bookmark ;)')
|
|
}
|
|
}
|
|
}),
|
|
new Element('span', {
|
|
'text': '⇽ Drag this to your bookmarks'
|
|
})
|
|
)
|
|
).setStyles({
|
|
'background-image': "url('"+Api.createUrl('static/userscript/userscript.png')+"')"
|
|
});
|
|
|
|
});
|
|
|
|
}
|
|
|
|
});
|
|
|
|
window.addEvent('domready', function(){
|
|
new UserscriptSettingTab();
|
|
});
|
|
|
|
window.addEvent('load', function(){
|
|
var your_version = $(document.body).get('data-userscript_version'),
|
|
latest_version = App.getOption('userscript_version') || '',
|
|
key = 'cp_version_check',
|
|
checked_already = Cookie.read(key);
|
|
|
|
if(your_version && your_version < latest_version && checked_already < latest_version){
|
|
if(confirm("Update to the latest Userscript?\nYour version: " + your_version + ', new version: ' + latest_version )){
|
|
document.location = Api.createUrl('userscript.get')+randomString()+'/couchpotato.user.js';
|
|
}
|
|
Cookie.write(key, latest_version, {duration: 100});
|
|
}
|
|
});
|
|
|