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())):
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))
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)
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)
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)
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"])
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)
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"])