def main(): twitter_auth = tweepy.OAuthHandler(secret.API_KEY, secret.API_SECRET) twitter_auth.set_access_token(secret.ACCESS_TOKEN, secret.ACCESS_SECRET) twitter_client = tweepy.API(twitter_auth) poem_lines = poem_from_template(HAIKU_TEMPLATE, DATABASE, CORPUS_ID) poem_raw_lines = map(lambda l: l['raw'], poem_lines) try: return twitter_client.update_status(status='\n'.join(poem_raw_lines)) except tweepy.error.TweepError as e: return e
def poem_new(self): session = get_session(self.db) corpus = self.get_corpus(session) if 0 == len(corpus.sources): log.error("Corpus {} has no sources.".format(corpus.name)) log.error("Use `prosaic corpus link 'corpus name' 'source name'` to add sources") return template = self.template poem_lines = map(first, poem_from_template(self.template, self.db, corpus.id)) output_filename = self.args.output if output_filename: with open(output_filename, 'w') as f: f.write(list(poem_lines).join('\n') + '\n') log.debug('poem written to {}'.format(output_filename)) else: for line in poem_lines: print(line)
def generate() -> ResponseData: method = get_method(request) session = Session() if method == 'GET': context = auth_context(request) cs = session.query(Corpus).all() ts = session.query(Template).all() context.update({ 'corpora': cs, 'templates': ts, }) return render_template('generate.html', **context) if method == 'POST': corpus_id = request.form['corpus_id'] corpus_name = session.query(Corpus.name)\ .filter(Corpus.id==corpus_id)\ .one()[0] t = json.loads(request.form['template_tweak']) poem = poem_from_template(t, app.config['DB'], corpus_id) source_ids = set(map(lambda p: p[1], poem)) get_source_name = lambda sid:\ session.query(Source.name).filter(Source.id==sid).one()[0] ss = map( lambda sid: {'id':sid, 'name': get_source_name(sid)}, source_ids ) result = { 'corpus': { 'id': corpus_id, 'name': corpus_name, }, 'lines': list(map(lambda p: p[0], poem)), 'used_sources': list(ss), } return json.dumps(result)