Beispiel #1
0
import datetime
import collections
from matplotlib.pyplot import plot, show, legend

config_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), '.creds')
config = json.load(open(config_path))

add_times = collections.defaultdict(int)
read_times = collections.defaultdict(int)

#date = datetime.datetime.fromtimestamp(int('1467690697'))
#add_times[date]+=1
config['state'] = 'all'


for key, entry in retrieve(config, verbose=False).iteritems():
    added = int(entry[u'time_added'])
    read = int(entry[u'time_read'])
    add_times[datetime.datetime.fromtimestamp(added)] += 1
    if read > 0:
        read_times[datetime.datetime.fromtimestamp(read)] += 1


times = []
read = []
unread = []
total = []
read_c = 0
unread_c = 0

for date in sorted(set(add_times.keys() + read_times.keys())):
Beispiel #2
0
class WBUR:
    URL_PATT = re.compile('wbur\.org')
    T_PAT = re.compile('<title>(.*)</title>')
    M_PAT = re.compile('<a href="([^"]*)" class="article-audio-dl" title="Download the audio"')

PATTERNS = [NPR, WBUR]

yaml = '/home/dlu/public_html/podcast/david_misc.yaml'

podcast = YamlPodcast(yaml)

config_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), '.creds')
config = json.load(open(config_path))

for key, entry in retrieve(config, verbose=True).iteritems():
    if 'podcast' in entry.get('tags', {}):
        continue
    try:
        url = entry.get('resolved_url', entry.get('given_url', None))
        if url is None:
            continue
        for pattern in PATTERNS:
            if not pattern.URL_PATT.search(url):
                continue
            page = urllib2.urlopen(url).read()
            m = pattern.M_PAT.search(page)
            if not m:
                continue

            fn = download_base_file(m.group(1))
Beispiel #3
0
import datetime
import os
import time

from pocketpy.auth import auth
from pocketpy.jsonconfig import JsonConfig
from pocketpy.pocket import retrieve

JSON_DIRECTORY = "pocket_json/"

if __name__ == "__main__":
    config = auth({})
    items = retrieve(config, verbose=True)
    timestamp = long(time.mktime(datetime.datetime.now().timetuple()))
    jc = JsonConfig(os.path.join(JSON_DIRECTORY, "%s.json" % str(timestamp)))
    jc.config = items
    jc.save(indent=4)
Beispiel #4
0
            if float(keyword["relevance"]) > 0.9:
                keywords.append(keyword["text"])
    return keywords

def tag_items_if_not_already_tagged(credentials, items, access_token,
        dry_run=True):
    for uid, item in items.iteritems():
        item_url = item.get("resolved_url")
        keywords = get_keywords_from_alchemy(access_token, item_url)
        if dry_run:
            print item_url, keywords
        else:
            if "tags" not in item:
                add_tags(credentials, uid, [tags])


if __name__ == "__main__":
    parser = OptionParser()
    parser.add_option('--alchemy-key', dest='alchemy_key',
            help='alchemy access token')
    parser.add_option('--dry-run', dest='dryrun', action='store_true',
            default=False, help='Enable for a dry run')
    (options, args) = parser.parse_args()

    config = auth(options)
    credentials = copy.deepcopy(config)
    items = retrieve(config, verbose=True)

    tag_items_if_not_already_tagged(credentials, items, options.alchemy_key,
            dry_run=options.dryrun)
Beispiel #5
0
 def test_retrieve_bad_request(self, requests_get):
     requests_get = self.patch_requests(requests_get, status_code=400)
     # config doesn't matter
     config = {}
     with self.assertRaises(SystemExit) as cm:
         returned_items = retrieve(config, verbose=True)
Beispiel #6
0
 def test_retrieve_verbosity(self, requests_get):
     requests_get = self.patch_requests(requests_get)
     # config doesn't matter
     config = {}
     returned_items = retrieve(config, verbose=True)
     self.assertEquals(returned_items, self.sample_items["list"])
Beispiel #7
0
 def test_retrieve_bad_request(self, requests_get):
     requests_get = self.patch_requests(requests_get, status_code=400)
     # config doesn't matter
     config = {}
     with self.assertRaises(SystemExit) as cm:
         returned_items = retrieve(config, verbose=True)
Beispiel #8
0
 def test_retrieve_verbosity(self, requests_get):
     requests_get = self.patch_requests(requests_get)
     # config doesn't matter
     config = {}
     returned_items = retrieve(config, verbose=True)
     self.assertEquals(returned_items, self.sample_items["list"])