def process_data_tables(ctx, data_record_query, first_data_id, data_table=None): data_table_metadata = OrderedDict() ctx['show_upload_area'] = False if ctx['show_upload_widget'] and data_record_query.count() == 0: ctx['show_upload_area'] = True elif data_record_query.count() > 0: record_submissions = data_record_query.all() for submission_record in record_submissions: processed_name = "".join(submission_record.name.split()) data_table_metadata[submission_record.id] = { "id": submission_record.id, "processed_name": processed_name, "name": submission_record.name, "location": submission_record.location_in_publication, "doi": submission_record.doi, "description": sanitize_html( truncate_string(submission_record.description, 20), tags=[], strip=True ) } if first_data_id == -1: first_data_id = submission_record.id if data_table: if submission_record.name == data_table: first_data_id = submission_record.id return data_table_metadata, first_data_id
def process_data_tables(ctx, data_record_query, first_data_id, data_table=None): data_table_metadata = OrderedDict() ctx['show_upload_area'] = False if ctx['show_upload_widget'] and data_record_query.count() == 0: ctx['show_upload_area'] = True elif data_record_query.count() > 0: record_submissions = data_record_query.all() for submission_record in record_submissions: processed_name = "".join(submission_record.name.split()) data_table_metadata[submission_record.id] = { "id": submission_record.id, "processed_name": processed_name, "name": submission_record.name, "location": submission_record.location_in_publication, "doi": submission_record.doi, "description": decode_string( truncate_string(submission_record.description, 20))} if first_data_id == -1: first_data_id = submission_record.id if data_table: if submission_record.name == data_table: first_data_id = submission_record.id return data_table_metadata, first_data_id
def tweet(title, collaborations, url): """ :param title: :param collaborations: :param url: :return: """ if USE_TWITTER: if not OAUTH_TOKEN or not OAUTH_SECRET or not CONSUMER_KEY or not CONSUMER_SECRET: # log this error print("Twitter credentials must be supplied!") else: twitter = Twitter(auth=OAuth(OAUTH_TOKEN, OAUTH_SECRET, CONSUMER_KEY, CONSUMER_SECRET)) try: status = "Added{0} data on \"{1}\" to {2}".format( get_collaboration_string(collaborations), truncate_string(encode_string(cleanup_latex(title)), 10), url) twitter.statuses.update(status=status) except Exception as e: print(e.__str__()) # It would be nice to get a stack trace here print("(P) Failed to post tweet for record {0}".format(url))
def tweet(title, collaborations, url, version=1): """ :param title: :param collaborations: :param url: :param version: :return: """ if USE_TWITTER: OAUTH_TOKEN = current_app.config['OAUTH_TOKEN'] OAUTH_SECRET = current_app.config['OAUTH_SECRET'] CONSUMER_KEY = current_app.config['CONSUMER_KEY'] CONSUMER_SECRET = current_app.config['CONSUMER_SECRET'] if not OAUTH_TOKEN or not OAUTH_SECRET or not CONSUMER_KEY or not CONSUMER_SECRET: # log this error print("Twitter credentials must be supplied!") else: twitter = Twitter(auth=OAuth(OAUTH_TOKEN, OAUTH_SECRET, CONSUMER_KEY, CONSUMER_SECRET)) # Try to tweet with paper title truncated to 10 words. # If tweet exceeds 140 characters, keep trying with one less word each time. words = 10 tweeted = False while words and not tweeted: try: if version == 1: status = "Added{0} data on \"{1}\" to {2}".format( get_collaboration_string(collaborations), truncate_string( encode_string(cleanup_latex(title)), words), url) else: status = "Revised{0} data on \"{1}\" at {2}?version={3}".format( get_collaboration_string(collaborations), truncate_string( encode_string(cleanup_latex(title)), words), url, version) twitter.statuses.update(status=status) tweeted = True print("Tweeted: {}".format(status)) except Exception as e: # It would be nice to get a stack trace here if e.e.code == 403: error = json.loads(e.response_data.decode('utf8')) if error["errors"][0][ "code"] == 186: # Status is over 140 characters. words = words - 1 # Try again with one less word. else: break else: break if not tweeted: print(e.__str__()) print("(P) Failed to post tweet for record {0}".format(url))