Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision
Loading items

Target

Select target project
  • stgroup/misc/codimd-export-script
1 result
Select Git revision
Loading items
Show changes

Commits on Source 3

......@@ -24,7 +24,8 @@ def prepare_target_dir(pathname):
"""Create the directory to dump documents to, but refuse to override an existing one."""
target_dir = Path(pathname)
if target_dir.exists():
raise SystemExit(f"error: the target directory {target_dir} already exists")
raise SystemExit(f"ERROR: the target directory {target_dir} already exists. Delete it, then re-execute this "
f"script")
target_dir.mkdir()
return target_dir
......
......@@ -7,9 +7,17 @@ else:
getpass = input
def get_sessionid(cookie_key):
def get_sessionid(service_name, cookie_key):
"""Ask the user for the session id, if it's not configured as an envvar."""
sid = getpass(f"Please provide your CodiMD session id ({cookie_key} cookie): ")
print(f"You now will be asked for your session cookie for {service_name}")
print(f"To extract this cookie, you need to open your browser with an active and logged-in {service_name} session")
print(f"In Firefox or Chrome, you can do this by following the following steps:")
print(f"\t1. Open the developer tools (Shortcut: F12")
print(f"\t2. Select \"Storage -> Cookies\" (Firefox) or \"Application -> Cookies\"")
print(f"\t3. Copy the value for the cookie named {cookie_key}")
print(f"\t4. Input it in the prompt")
sid = getpass(f"Please provide your {service_name} session id ({cookie_key} cookie): ")
if sid.startswith("s%3A"):
return sid
raise SystemExit(f"error: the supplied session id seems to be malformed")
......@@ -33,7 +33,16 @@ def import_single_document(instance_url, hedgedoc_free_url, content, session_id)
return response.url
def check_archive_exists(archive_file):
if not os.path.exists(archive_file):
raise SystemExit(
f"ERROR: File {archive_file} does not exist. Export your data from CodiMD and re-execute this script again!"
f" Aborting...")
def import_into_hedgedoc(instance_url, session_id, export_folder, archive_file):
print("Beginning import")
check_archive_exists(archive_file)
check_accessibility(instance_url, session_id)
# let user select browser
browser = select_browser()
......
......@@ -4,5 +4,7 @@ from hedgedoc_import import import_into_hedgedoc
if __name__ == "__main__":
export_folder = "codimd-documents"
export_from_codimd("http://localhost:3001", get_sessionid("connect.sid"), export_folder)
import_into_hedgedoc("http://hedgedoc:3000", get_sessionid("connect.hedgeDoc.sid"), export_folder, "archive.zip")
export_archive = "archive.zip"
export_from_codimd("https://md.inf.tu-dresden.de/", get_sessionid("CodiMD", "connect.sid"), export_folder)
import_into_hedgedoc("https://md.inf.tu-dresden.de/notes", get_sessionid("HedgeDoc", "connect.hedgeDoc.sid"),
export_folder, export_archive)