Files
pyJira/Confluence_Teamspace_Planning.py

101 lines
3.4 KiB
Python

# 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)