# make page-header of confluence-area unique (add WGWR2) # zisco 2023-11-10 06:59 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)