Compare commits
2 commits
40784222a5
...
6a18c14d42
| Author | SHA1 | Date | |
|---|---|---|---|
| 6a18c14d42 | |||
| d1420b9976 |
4 changed files with 115 additions and 11 deletions
51
move_keywords.py
Executable file
51
move_keywords.py
Executable file
|
|
@ -0,0 +1,51 @@
|
|||
#!/usr/bin/python3
|
||||
|
||||
import getpass
|
||||
import json
|
||||
import sys
|
||||
|
||||
import ox
|
||||
import ox.web.auth
|
||||
|
||||
site = 'pandora.cinemusespace.com'
|
||||
api = ox.API('https://%s/api/' % site)
|
||||
update = False
|
||||
try:
|
||||
credentials = ox.web.auth.get(site)
|
||||
except:
|
||||
credentials = {}
|
||||
print('Please provide your username and password for %s:' % site)
|
||||
credentials['username'] = input('Username: ')
|
||||
credentials['password'] = getpass.getpass('Password: ')
|
||||
update = True
|
||||
r = api.signin(**credentials)
|
||||
if 'errors' in r.get('data', {}):
|
||||
for kv in r['data']['errors'].items():
|
||||
print('%s: %s' % kv)
|
||||
sys.exit(1)
|
||||
if update:
|
||||
ox.web.auth.update(site, credentials)
|
||||
|
||||
rename = json.load(open(sys.argv[1]))
|
||||
|
||||
for old, new in rename.items():
|
||||
for annotation in api.findAnnotations({
|
||||
'query': {
|
||||
'conditions': [{
|
||||
'key': 'value',
|
||||
'value': old,
|
||||
'operator': '=='
|
||||
},
|
||||
{
|
||||
'key': 'layer',
|
||||
'value': 'keywords',
|
||||
'operator': '=='
|
||||
}],
|
||||
'operator': '&'
|
||||
},
|
||||
'keys': ['id', 'in', 'out', 'value', 'user', 'created'],
|
||||
'range': [0, 500000]
|
||||
})['data']['items']:
|
||||
print(annotation['id'], annotation['value'], '->', new)
|
||||
r = api.editAnnotation({'id': annotation['id'], 'value': new})
|
||||
print(r.get('status'))
|
||||
|
|
@ -1,15 +1,15 @@
|
|||
#!/usr/bin/python3
|
||||
|
||||
import ox
|
||||
import ox.web.auth
|
||||
import getpass
|
||||
import json
|
||||
import sys
|
||||
|
||||
url = 'http://131.111.144.26/api/'
|
||||
|
||||
api = ox.API(url)
|
||||
site = '131.111.144.26'
|
||||
import ox
|
||||
import ox.web.auth
|
||||
|
||||
site = 'pandora.cinemusespace.com'
|
||||
api = ox.API('https://%s/api/' % site)
|
||||
update = False
|
||||
try:
|
||||
credentials = ox.web.auth.get(site)
|
||||
except:
|
||||
|
|
@ -26,6 +26,7 @@ if 'errors' in r.get('data', {}):
|
|||
if update:
|
||||
ox.web.auth.update(site, credentials)
|
||||
|
||||
|
||||
old = []
|
||||
for annotation in api.findAnnotations({
|
||||
'query': {
|
||||
|
|
|
|||
52
static/html/print.html
Normal file
52
static/html/print.html
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
<script src="/static/oxjs/min/Ox.js"></script>
|
||||
<script>
|
||||
function pandora_api(action, data, callback) {
|
||||
var url = '/api/';
|
||||
var xhr = new XMLHttpRequest();
|
||||
xhr.addEventListener('load', function (evt) {
|
||||
var data = JSON.parse(evt.target.responseText);
|
||||
callback(data);
|
||||
});
|
||||
var formData = new FormData();
|
||||
formData.append('action', action);
|
||||
formData.append('data', JSON.stringify(data));
|
||||
xhr.open('POST', url);
|
||||
xhr.send(formData);
|
||||
}
|
||||
|
||||
function render() {
|
||||
var hash = document.location.hash.slice(1).split('/')
|
||||
if (hash.length == 2) {
|
||||
var item = hash[0],
|
||||
time = hash[1].split(','),
|
||||
in_ = time[0],
|
||||
out = time[1];
|
||||
|
||||
in_ = Ox.parseDuration(in_);
|
||||
out = Ox.parseDuration(out);
|
||||
pandora_api('get', {
|
||||
id: item,
|
||||
keys: ['title', 'layers']
|
||||
}, function(result) {
|
||||
var html = ''
|
||||
html += '<h1>' + result.data.title + ': ' + time[0] + ' - ' + time[1] + '</h1>'
|
||||
html += '<img src="/' + item + '/240p'+in_+'.jpg">'
|
||||
Ox.sortBy(result.data.layers.keywords, 'value').forEach(function(keyword) {
|
||||
if (keyword['in'] <= out && keyword['out'] >= in_) {
|
||||
html += '<br>' + keyword['value'];
|
||||
}
|
||||
})
|
||||
document.body.innerHTML = html;
|
||||
});
|
||||
} else {
|
||||
}
|
||||
}
|
||||
window.onhashchange = render
|
||||
|
||||
render()
|
||||
</script>
|
||||
<style>
|
||||
body {
|
||||
font-family: sans-serif;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -449,7 +449,7 @@ pandora.ui.infoView = function(data) {
|
|||
var $rightsLevel = $('<div>');
|
||||
var $div = $('<div>')
|
||||
.css({marginBottom: '4px'})
|
||||
.append('Rights Level')
|
||||
.append(formatKey('Rights Level', 'statistics'))
|
||||
.append($rightsLevel)
|
||||
.appendTo($statistics);
|
||||
pandora.createLinks($div);
|
||||
|
|
@ -562,10 +562,10 @@ pandora.ui.infoView = function(data) {
|
|||
key = Ox._('Alternative Title' + (
|
||||
data.alternativeTitles && data.alternativeTitles.length == 1 ? '' : 's'
|
||||
));
|
||||
} else if (key == 'topic') {
|
||||
key = 'topics'
|
||||
} else if (key == 'actor') {
|
||||
key = 'actors'
|
||||
} else if (key == 'Topic') {
|
||||
key = 'Topics'
|
||||
} else if (key == 'Actor') {
|
||||
key = 'Actors'
|
||||
}
|
||||
var value = Ox.toTitleCase(key)
|
||||
.replace(' Of ', ' of ')
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue