From 62708dea8904461844c2f039b1f73f0c41fb19c7 Mon Sep 17 00:00:00 2001 From: kdeng00 Date: Sun, 2 Oct 2022 13:43:39 -0400 Subject: [PATCH] Updated config file Added new fields for limiting requests --- Main.py | 40 +++++++++++++++++++++++----------------- Models.py | 26 ++++++++++++++++++++++++-- OneNoteManager.py | 11 ++++++++--- config.json | 2 ++ 4 files changed, 57 insertions(+), 22 deletions(-) diff --git a/Main.py b/Main.py index 248f89f..5a20b51 100644 --- a/Main.py +++ b/Main.py @@ -1,6 +1,6 @@ -import sys -import io import json +import sys +import time import log21 import simplenote @@ -183,6 +183,12 @@ def export_to_onenote(simplenotes, onenote_mgr, chosen_notebook=None, chosen_sec count = 0 + config = onenote_mgr.config + interval = config.interval + limit = config.limit + total_notes_added = 0 + bundle_notes_added = 0 + for note in onenote_notes["value"]: count += 1 @@ -203,6 +209,18 @@ def export_to_onenote(simplenotes, onenote_mgr, chosen_notebook=None, chosen_sec cred.username = sn['username'] cred.password = sn['password'] delete_note(cred, note) + + if bundle_notes_added == limit: + if interval > 300: + time.sleep(300) + else: + time.sleep(interval) + + bundle_notes_added = 0 + else: + bundle_notes_added += 1 + + total_notes_added += 1 @@ -271,19 +289,7 @@ def main(): 14. [X] Delete the Simplenote note """ - token = Models.ResponseToken() - - if config.mode == "token input": - print("Enter token: ") - token_input = input() - token.access_token = token_input - config.token = token.access_token - elif config.mode == "token": - token.access_token = config.token - else: - token = onenote_mgr.fetch_token() - - config.token = token.access_token + config.token_init() onenote_mgr = OneNoteManager.OneNoteManager(config=config) @@ -292,8 +298,8 @@ def main(): export_to_onenote(notes, onenote_mgr, chosen_notebook=chosen_notebook, chosen_section=chosen_section) -logger = log21.get_logger('My Logger', level_names={21: 'SpecialInfo', log21.WARNING: ' ! ', log21.ERROR: '!!!'}) -logger.log(21, 'Here', '%s', 'GO!', args=('we',)) +# logger = log21.get_logger('My Logger', level_names={21: 'SpecialInfo', log21.WARNING: ' ! ', log21.ERROR: '!!!'}) +# logger.log(21, 'Here', '%s', 'GO!', args=('we',)) if __name__ == "__main__": main() \ No newline at end of file diff --git a/Models.py b/Models.py index 12e954a..ba3d6d0 100644 --- a/Models.py +++ b/Models.py @@ -1,4 +1,8 @@ +# from OneNoteManager import OneNoteManager +import OneNoteManager + + class SimpleNote(object): def __init__(self, title=None, content=None): self.title = title @@ -59,17 +63,35 @@ class OneNote(object): class Config(object): - def __init__(self, token=None, secret=None, app_id=None, mode=None, scopes=None, authority_url=None, base_url=None, vendors=None) -> None: - # def __init__(self, token=None, secret=None, app_id=None, mode=None, scopes=None, authority_url=None, base_url=None) -> None: + def __init__(self, token=None, secret=None, app_id=None, mode=None, scopes=None, authority_url=None, limit=None, interval=None, base_url=None, vendors=None) -> None: self.token = token self.secret = secret self.app_id = app_id self.mode = mode self.scopes = scopes self.authority_url = authority_url + self.limit = limit + self.interval = interval self.base_url = base_url self.vendors = vendors + + def token_init(self): + token = ResponseToken() + + if self.mode == "token input": + print("Enter token: ") + token_input = input() + token.access_token = token_input + self.token = token.access_token + elif self.mode == "token": + token.access_token = self.token + else: + onenote_mgr = OneNoteManager(self) + token = onenote_mgr.fetch_token() + + self.token = token.access_token + class Vendor(object): def __init__(self, username=None, password=None, target_notebook=None, target_section=None) -> None: self.username = username diff --git a/OneNoteManager.py b/OneNoteManager.py index f69e17d..a7ffc30 100644 --- a/OneNoteManager.py +++ b/OneNoteManager.py @@ -1,6 +1,7 @@ import json -import webbrowser +import os import subprocess +import webbrowser import ast import msal @@ -14,7 +15,8 @@ class OneNoteManager(object): self.token = token self.config = config - self.initialize_onenote(self.config) + if self.config != None: + self.initialize_onenote(self.config) def initialize_onenote(self, config): self.__APP_ID = config.app_id @@ -132,8 +134,11 @@ class OneNoteManager(object): print('User code: %s' % (user_code)) print("Enter code in browser to continue (Has been entered into clipboard)\n") + if os.name == "nt": + useless_cat_call = subprocess.run(["clip.exe"], stdout=subprocess.PIPE, text=True, input=user_code) + elif os.name == "posix": + useless_cat_call = subprocess.run(["clip.exe"], stdout=subprocess.PIPE, text=True, input=user_code) - useless_cat_call = subprocess.run(["clip.exe"], stdout=subprocess.PIPE, text=True, input=user_code) app_code = flow['message'] diff --git a/config.json b/config.json index 9133c08..046e79b 100644 --- a/config.json +++ b/config.json @@ -6,6 +6,8 @@ "scopes": ["Create", "Read"], "authority_url": "https://some-link.com", "base_url": "https://some-other-link.com", + "limit": 100, + "interval": 300, "vendors": { "simplenote": { "username": "me",