diff --git a/Confluence_Teamspace_Planning.py b/Confluence_Teamspace_Planning.py new file mode 100644 index 0000000..22af37e --- /dev/null +++ b/Confluence_Teamspace_Planning.py @@ -0,0 +1,101 @@ +# use planning-excel to actualize MADD-Teamspace +# zisco 2024-06-28 09:57 + +from distutils.log import INFO +from queue import Full +from sqlite3 import Timestamp +from atlassian import Confluence +import logging +import requests +import json +from datetime import date, datetime + +# Custom serializer function +def custom_serializer(obj): + if isinstance(obj, datetime): + #'2024-03-28T09:20:00.000+01:00' + #return obj.strftime('%Y-%m-%dT%H:%M:%S') + return obj.strftime('%Y-%m-%dT%H:%M:%S.000+01:00') + raise TypeError(f'Object of type {type(obj)} is not JSON serializable') + +logging.basicConfig(filename='confluence blog timestamp change.log', + filemode='a', + format='%(asctime)s - %(levelname)s: %(message)s', + level=logging.WARNING, + encoding='utf-8') +logger = logging.getLogger('myLogger') +logger.setLevel(level=logging.INFO) + +confluence_host = "https://confluence.wien.gv.at/" +confluence_pat = "MDI3ODU2NzkzMTAyOsPz47kjJvVdJa1bLpen3W5sB6S5" + +s = requests.Session() +s.headers['Authorization'] = f"Bearer {confluence_pat}" +confluence = Confluence(url=confluence_host, session=s) + +# Function to retrieve page content by page ID +def get_page_content(page_id): + blog_page = confluence.get_page_by_id(page_id, expand='body.storage') + space = confluence.get_page_by_id(page_id, expand='space') + return blog_page, space['space'] + +# Function to create a new page with specified creation date +def create_page_with_creation_date(space, title, body, creation_date): + #headers = {'Content-Type': 'application/json'} + data = { + "type": "page", + "title": title, + "body": { + "storage": { + "value": body, + "representation": "storage" + } + }, + "metadata": { + "createdDate": creation_date + } + } + status = confluence.create_page(space=space, title=title, body=body, type='blogpost') + return status + +# Function to delete a page by page ID +def delete_page(page_id): + response = confluence.remove_page(page_id=page_id) + return response.status_code == 204 + +""" +def change_blog_timestamp(page_id): + blog_page = confluence.get_page_by_id(page_id, expand=None, status=None, version=None) + #confluence.update_page(page_id=page_id, Timestamp=datetime.now()) + + data = { + "history": { + "createdDate": datetime.now() + } + } + json_data = json.dumps(data, default=custom_serializer) + + + confluence.update_page_property(page_id=page_id, data=json_data) + + # Get old page contents + page_content = confluence.get_page_by_id(page_id=page_id, expand='body') # Old page contents + + #Rename and move page, get updated content + #new_page_content = confluence.update_page(old_page_content['id'], title=new_title, body=old_page_content['body'], parent_id=parent_id, type="page", representation="storage") + confluence.update_page(page_id=page_id, title=page_title) #, body=page_content['body']) + logger.info(f"New page title '{page_title}'") """ + +# Example usage +page_id = 317036255 # Jenkins-Blog +new_creation_date = datetime.now() +page_content, space = get_page_content(page_id) +if page_content: + title = page_content["title"] + body = page_content["body"] + new_page_id = create_page_with_creation_date(space['key'], title, body, new_creation_date) + delete_page(page_id) +else: + print("Page not found.") + +#change_blog_timestamp(page_id=page_id) \ No newline at end of file diff --git a/config.yaml b/config.yaml new file mode 100644 index 0000000..c122916 --- /dev/null +++ b/config.yaml @@ -0,0 +1,13 @@ +{'maintainer': 'Markus Zimmerberger', + 'pca_params': {'n_components': 224}, + 'umap_params': {'metrics': ['euclidean', 'l1', 'manhattan'], + 'min_dist': [0.01, 0.1, 0.5], + 'spread': 1.0}, + 'visualize_params': {'median_threshold': 6}, + 'spreadsheet_name': 'Zeiterfassung alle Projekte', + 'worksheet_name': 'September 2024', + 'week': [37], + 'name': 'Markus Zimmerberger', + 'username': 'ZIM9003', + 'ansprechpartner_username': 'GRM0003', + 'ansprechpartner_name': 'Marlene Griesser'} \ No newline at end of file