Skip to content

Commit

Permalink
Revert "Use Alfred JSON for passing yvset preference data"
Browse files Browse the repository at this point in the history
This reverts commit aa27398.
  • Loading branch information
caleb531 committed Jan 20, 2019
1 parent f67e47f commit 35680db
Show file tree
Hide file tree
Showing 5 changed files with 57 additions and 63 deletions.
64 changes: 32 additions & 32 deletions tests/test_filter_prefs.py
Expand Up @@ -29,14 +29,14 @@ def test_filter_languages():
nose.assert_equal(
results[0]['title'], 'Español (América Latina) - Spanish')
nose.assert_equal(results[0].get('valid', True), True)
nose.assert_equal(results[0]['arg'], {
'alfredworkflow': {
'variables': {
'pref_id': 'language',
'pref_name': 'Language',
'value_id': 'spa',
'value_name': 'Español (América Latina) - Spanish'
}
nose.assert_equal(json.loads(results[0]['arg']), {
'pref': {
'id': 'language',
'name': 'Language'
},
'value': {
'id': 'spa',
'name': 'Español (América Latina) - Spanish'
}
})
nose.assert_equal(len(results), 2)
Expand All @@ -58,14 +58,14 @@ def test_filter_versions():
nose.assert_equal(results[0]['uid'], 'yvs-version-110')
nose.assert_equal(results[0]['title'], 'NIRV')
nose.assert_equal(results[0].get('valid', True), True)
nose.assert_equal(results[0]['arg'], {
'alfredworkflow': {
'variables': {
'pref_id': 'version',
'pref_name': 'Version',
'value_id': 110,
'value_name': 'NIRV'
}
nose.assert_equal(json.loads(results[0]['arg']), {
'pref': {
'id': 'version',
'name': 'Version'
},
'value': {
'id': 110,
'name': 'NIRV'
}
})
nose.assert_equal(len(results), 3)
Expand All @@ -91,14 +91,14 @@ def test_filter_refformats():
'yvs-refformat-{id}'.format(id=result_format_id))
nose.assert_equal(results[0]['title'], result_title)
nose.assert_equal(results[0].get('valid', True), True)
nose.assert_equal(results[0]['arg'], {
'alfredworkflow': {
'variables': {
'pref_id': 'refformat',
'pref_name': 'Reference Format',
'value_id': result_format_id,
'value_name': result_title
}
nose.assert_equal(json.loads(results[0]['arg']), {
'pref': {
'id': 'refformat',
'name': 'Reference Format'
},
'value': {
'id': result_format_id,
'name': result_title
}
})
nose.assert_equal(len(results), 1)
Expand All @@ -112,14 +112,14 @@ def test_show_current_refformat():
nose.assert_equal(results[0]['uid'], 'yvs-refformat-Z {content}')
nose.assert_equal(results[0]['title'], 'Z Jesus wept.')
nose.assert_equal(results[0]['valid'], False)
nose.assert_equal(results[0]['arg'], {
'alfredworkflow': {
'variables': {
'pref_id': 'refformat',
'pref_name': 'Reference Format',
'value_id': 'Z {content}',
'value_name': 'Z Jesus wept.'
}
nose.assert_equal(json.loads(results[0]['arg']), {
'pref': {
'id': 'refformat',
'name': 'Reference Format'
},
'value': {
'id': 'Z {content}',
'name': 'Z Jesus wept.'
}
})

Expand Down
19 changes: 7 additions & 12 deletions tests/test_set_pref.py
Expand Up @@ -58,16 +58,11 @@ def test_set_language_clear_cache():
@redirect_stdout
def test_main(out, set_pref):
"""should pass preference data to setter"""
alfred_data = {
'alfredworkflow': {
'variables': {
'pref_id': 'language',
'pref_name': 'Language',
'value_id': 'spa',
'value_name': 'Español'
}
}
}
yvs.main(json.dumps(alfred_data))
yvs.main(json.dumps({
'pref': {'id': 'language', 'name': 'Language'},
'value': {'id': 'spa', 'name': 'Español'}
}))
set_pref.assert_called_once_with('language', 'spa')
nose.assert_equal(json.loads(out.getvalue()), alfred_data)
success_message = out.getvalue()
nose.assert_in('language'.encode('utf-8'), success_message)
nose.assert_in('Español'.encode('utf-8'), success_message)
19 changes: 10 additions & 9 deletions yvs/filter_prefs.py
Expand Up @@ -3,6 +3,7 @@

from __future__ import unicode_literals

import json
import re
import sys
from operator import itemgetter
Expand Down Expand Up @@ -117,16 +118,16 @@ def get_value_result(value, user_prefs, pref_def):

result = {
'uid': 'yvs-{}-{}'.format(pref_def['id'], value['id']),
'arg': {
'alfredworkflow': {
'variables': {
'pref_id': pref_def['id'],
'pref_name': pref_def['name'],
'value_id': value['id'],
'value_name': value['name']
}
'arg': json.dumps({
'pref': {
'id': pref_def['id'],
'name': pref_def['name']
},
'value': {
'id': value['id'],
'name': value['name']
}
},
}),
'title': value['name']
}

Expand Down
16 changes: 7 additions & 9 deletions yvs/set_pref.py
Expand Up @@ -10,12 +10,10 @@


# Parse pref set data from the given JSON string
def parse_pref_set_data_str(pref_set_data_str):
def parse_pref_set_data(pref_set_data_str):

pref_set_data = json.loads(
pref_set_data_str)['alfredworkflow']['variables']
return [pref_set_data[key] for key in
['pref_id', 'pref_name', 'value_id', 'value_name']]
pref_set_data = json.loads(pref_set_data_str)
return pref_set_data['pref'], pref_set_data['value']


# Set the YouVersion Suggest preference with the given key
Expand All @@ -35,10 +33,10 @@ def set_pref(pref_id, value_id):

def main(pref_set_data_str):

pref_id, pref_name, value_id, value_name = parse_pref_set_data_str(
pref_set_data_str)
set_pref(pref_id, value_id)
print(pref_set_data_str.encode('utf-8'))
pref, value = parse_pref_set_data(pref_set_data_str)
set_pref(pref['id'], value['id'])
print('Preferred {} set to {}'.format(
pref['name'].lower(), value['name']).encode('utf-8'))


if __name__ == '__main__':
Expand Down
2 changes: 1 addition & 1 deletion yvs/shared.py
Expand Up @@ -120,7 +120,7 @@ def get_result_list_feedback_item(result):
item = {}
if 'arg' in result:
item['arg'] = result['arg']
item['quicklookurl'] = get_ref_url(str(item['arg']))
item['quicklookurl'] = get_ref_url(item['arg'])
item['valid'] = result.get('valid', True)

if 'uid' in result:
Expand Down

0 comments on commit 35680db

Please sign in to comment.