Confluence XML-RPC: установите дату создания

Я пытаюсь перенести некоторые существующие записи блога в нашу вики слияния, используя XML-RPC с Python. В настоящее время он работает с такими вещами, как заголовок, контент, пространство и т. д., но не будет работать для даты создания.

Это то, что было предпринято в настоящее время

import xmlrpclib

proxy=xmlrpclib.ServerProxy('<my_confluence>/rpc/xmlrpc')
token=proxy.confluence1.login('username', 'password')

page = {
    'title':'myTitle',
    'content':'My Content',
    'space':'myspace',
    'created':sometime
}

proxy.confluence1.storePage(token, page)

sometime — это дата, которую я хочу установить на время в прошлом. Я пытался использовать объекты даты, различные форматы строк и даже объект даты, возвращенный предыдущим сохранением, но безуспешно.


person neolaser    schedule 12.08.2011    source источник


Ответы (2)


Если вы попытаетесь сохранить существующий контент как фактические записи блога в Confluence, вы можете использовать параметр «publishDate»:

import xmlrpclib
import datetime

proxy=xmlrpclib.ServerProxy('<my_confluence>/rpc/xmlrpc')
token=proxy.confluence1.login('username', 'password')

blogpost = {
    'title' : 'myTitle',
    'content' : 'My Content',
    'space' : 'myspace',
    'publishDate' : datetime.datetime(2001, 11, 21, 16, 30)
}

proxy.confluence1.storeBlogEntry(token, blogpost)

XML-API для страниц игнорирует параметр "создан".

person Remo    schedule 03.11.2011

Вы можете использовать strptime, потому что тип не будет соответствовать напрямую. Надеюсь, это сработает.

new_sometime = datetime.strptime(sometime, '%Y-%m-%d')
page = {
    'title':'myTitle',
    'content':'My Content',
    'space':'myspace',
    'created':new_sometime
}
person Turkesh Patel    schedule 12.08.2011
comment
Я пробовал различные варианты форматирования строк, и они, похоже, не работают. Я думаю, проблема может заключаться в том, что слияние перезаписывает созданное время, когда оно было фактически создано, что, я думаю, имеет смысл... - person neolaser; 15.08.2011
comment
когда вы получите старое значение, оно будет в строковом формате, и вы хотите перезаписать 2, тогда вам нужно преобразовать в формат даты и времени. - person Turkesh Patel; 16.08.2011
comment
сначала распечатайте и проверьте new_sometime. вы понимаете это правильно. может быть, если ваш формат даты и времени отличается, тогда также возможно, что вы не можете этого сделать - person Turkesh Patel; 16.08.2011
comment
Спасибо за комментарий, но это не работает. У меня есть много разных форматов, и, как я уже сказал в вопросе, я даже пробовал фактический объект даты, возвращенный из предыдущего сохранения (который устанавливается слиянием) - person neolaser; 17.08.2011