updated dump_html
This commit is contained in:
@@ -8,6 +8,8 @@ from xml.etree import ElementTree as ET
|
||||
from urllib import urlencode
|
||||
from urlparse import urljoin
|
||||
from datetime import datetime
|
||||
from padserver import PadServer
|
||||
|
||||
|
||||
PADINFO_DEFAULTS = {
|
||||
"hostname": "",
|
||||
@@ -34,63 +36,6 @@ def content(tag):
|
||||
else:
|
||||
return tag.text + u''.join(ET.tostring(e) for e in tag)
|
||||
|
||||
class PadServer (object):
|
||||
def __init__ (self, hostname, port=9001, apipath="/api/", apiversion="1.2.9", apikey=None, secure=False):
|
||||
self.hostname = hostname
|
||||
if secure:
|
||||
self.protocol = "https"
|
||||
else:
|
||||
self.protocol = "http"
|
||||
|
||||
self.apiurl = self.protocol+"://"+hostname
|
||||
if port:
|
||||
self.apiurl += ":{0}".format(port)
|
||||
self.apiurl += "{0}{1}/".format(apipath, apiversion)
|
||||
self.apikey = apikey
|
||||
|
||||
def listAllPads (self):
|
||||
data = {'apikey': self.apikey}
|
||||
url = self.apiurl+'listAllPads?'+urlencode(data)
|
||||
return json.load(urlopen(url))['data']['padIDs']
|
||||
|
||||
def listAllGroups (self):
|
||||
data = {'apikey': self.apikey}
|
||||
url = self.apiurl+'listAllGroups?'+urlencode(data)
|
||||
return json.load(urlopen(url))['data']['groupIDs']
|
||||
|
||||
def getPadText (self, padID):
|
||||
data = {'apikey': self.apikey, 'padID': padID.encode("utf-8")}
|
||||
return json.load(urlopen(self.apiurl+'getText?'+urlencode(data)))['data']['text']
|
||||
|
||||
def getPadHTML (self, padID):
|
||||
data = {'apikey': self.apikey, 'padID': padID.encode("utf-8")}
|
||||
return json.load(urlopen(self.apiurl+'getHTML?'+urlencode(data)))['data']['html']
|
||||
|
||||
def getPadLastEdited (self, padID):
|
||||
data = {'apikey': self.apikey, 'padID': padID.encode("utf-8")}
|
||||
raw = json.load(urlopen(self.apiurl+'getLastEdited?'+urlencode(data)))['data']['lastEdited']
|
||||
try:
|
||||
return datetime.fromtimestamp(int(raw)/1000)
|
||||
except TypeError as e:
|
||||
return None
|
||||
|
||||
def getPadURL (self, padID, groupinfo=None):
|
||||
group, name = pad_split_group(padID)
|
||||
if group:
|
||||
gid = group
|
||||
if gid.startswith("g."):
|
||||
gid = gid[2:]
|
||||
if groupinfo:
|
||||
ginfo = groupinfo.get(gid)
|
||||
if ginfo:
|
||||
groupID = ginfo.get("id", 0)
|
||||
else:
|
||||
groupID = 0
|
||||
else:
|
||||
groupID = 0
|
||||
return self.protocol+"://"+self.hostname+"/group.html/"+str(groupID)+"/pad.html/"+padID
|
||||
else:
|
||||
return self.protocol+"://"+self.hostname+"/public_pad/"+padID
|
||||
|
||||
def get_template_env (tpath=None):
|
||||
import jinja2
|
||||
@@ -291,6 +236,8 @@ if __name__ == "__main__":
|
||||
parser.add_argument('--groupinfo', default=None, help='(index) groupinfo json file')
|
||||
parser.add_argument('--output', default=None, help='(index) path for output (default stdout)')
|
||||
|
||||
parser.add_argument('--pad', default="start", help='(history) pad id')
|
||||
parser.add_argument('--rev', default="", help='(history) revision id')
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
@@ -448,6 +395,19 @@ if __name__ == "__main__":
|
||||
if args.output:
|
||||
out.close()
|
||||
|
||||
elif cmd == "revisions":
|
||||
print (padserver.getRevisionsCount(args.pad))
|
||||
|
||||
elif cmd == "authors":
|
||||
print (padserver.listAuthorsOfPad(args.pad))
|
||||
|
||||
elif cmd == "changeset":
|
||||
print (padserver.getRevisionChangeset(args.pad, args.rev))
|
||||
|
||||
elif cmd == "history":
|
||||
revs = padserver.getRevisionsCount(args.pad)
|
||||
data = padserver.createDiffHTML(args.pad, 1, revs)
|
||||
print (data['html'])
|
||||
|
||||
else:
|
||||
print ("Command '{0}' not understood, try: listpads, listgroups, dump".format(args.command), file=sys.stderr)
|
||||
|
||||
Reference in New Issue
Block a user