import time
import rawsc
import rawsc.service
from rawsc import rass
import rawsc.rass.service
try:
from xml.etree import cElementTree as ElementTree
except ImportError:
try:
import cElementTree as ElementTree
except ImportError:
from elementtree import ElementTree
USER = "XXX"
PWD = "XXX"
SERVER = "rass.cdn01.rambla.be"
TGT_FILENAME = "white_noise.mp4"
LOCAL_FILE = "../test_resources/bla.mp4"
DOWNLOADS_DIR = "path_to_writable_dir"
try:
client = rawsc.rass.service.RassService(username=USER, password=PWD, server=SERVER)
qry = rawsc.Query()
qry["kind"] = "dir"
feed = client.getDirFeed(uri = "/dir/", query = qry)
print "Retrieved feed of directories (kind=dir):"
for e in feed.entry:
print "\nDir Entry URI: " + str(e.id.text)
print "name: " + str(e.content.params.name.text)
print "size: " + str(e.content.params.size.text)
print "updated: " + str(e.content.params.updated.text)
new_dir_entry = client.createDir(path = "abas9")
print "\nCreated new dir: %s" % new_dir_entry.id.text
print "Dir kind attr: %s" % new_dir_entry.kind
print "Dir path attr: %s" % new_dir_entry.path
new_file_entry = client.createItem(path = new_dir_entry.content.params.name.text + "/" + TGT_FILENAME + "/", local_path = LOCAL_FILE)
print "\nCreated new item: %s" % new_file_entry.id.text
print "Item kind attr: %s" % new_file_entry.kind
print "Item path attr: %s" % new_file_entry.path
new_file_entry = client.postItem(dirpath = new_dir_entry.content.params.name.text, filename = TGT_FILENAME, local_path = LOCAL_FILE)
print "\nCreated new item: %s" % new_file_entry.id.text
print "Item kind attr: %s" % new_file_entry.kind
print "Item path attr: %s" % new_file_entry.path
qry = rawsc.Query()
qry["kind"] = "file"
feed = client.getDirFeedFromPath(query = qry, path = new_dir_entry.path)
print "\nRetrieved feed of items: %s" % feed.id.text
for e in feed.entry:
if rawsc.get_enclosure_link(e):
client.getItemFile(uri = rawsc.get_enclosure_link(e), local_path = DOWNLOADS_DIR + e.content.params.name.text )
print "downloaded item (%s) to local path = %s" % (e.id.text, DOWNLOADS_DIR + e.content.params.name.text)
client.delete(uri = new_file_entry.id.text)
print "\nDeleted item = %s" % new_file_entry.path
client.delete(uri = new_dir_entry.id.text)
print "\nDeleted dir = %s" % new_dir_entry.path
except rawsc.service.Error, e:
print "Error Response from server, contents = %s.\n" % str(e)
error_dict = e[0]
print "status code : " + str(error_dict["status"]) + "\n"
if error_dict.has_key("body"):
print "error body : " + error_dict["body"] + "\n"
except rawsc.RawscException, e:
print "RawscException caught, reason = %s.\n" % str(e)
except StandardError, e:
print "StandardError caught, reason = %s.\n" % str(e)
except:
print "unhandled exception caught\n"