Besøksadresse
Sikt avdelingskontor i Oslo (kart)
Fridtjof Nansens vei 19
0369
Oslo
F�lgende Python-skript er sendt inn av Steinar Kleven (HiST), og bruker setImage i BAS for � tilbakeskrive bilder til FS. Man kan oppgi enkeltbilder, eller *.jpg for � sende inn i bulk. Brukernavn og passord m� endres (disse er for enkelhets skyld satt rett inn i skriptet under).
#!/usr/bin/env python # -*- coding: iso-8859-1 -*- """ update_FS_images.py - Demonstrate how to set images in FS (Felles Studentsystem) using webservices. """ __version__ = "$Revision: 00000001 $" __author__ = "Steinar Kleven" __date__ = "21. June 2010" __license__ = "Public Domain" import getopt import sys import os import glob import logging # logging.basicConfig(level=logging.INFO) # logging.getLogger('suds.client').setLevel(logging.DEBUG) # logging.getLogger('suds.transport').setLevel(logging.DEBUG) # logging.getLogger('suds.xsd.schema').setLevel(logging.DEBUG) # logging.getLogger('suds.wsdl').setLevel(logging.DEBUG) import suds from suds.transport.https import HttpAuthenticated from suds.client import Client def get_file_list(values): files = [] for val in values: files.extend(glob.glob(val)) return files def set_image(client, fnr, filename): base64data = {'image' : open(filename).read().encode('base64')} try: reply = client.service.setImage(fnr, base64data) if reply != "OK": logging.warning("Setting image for %s failed: %s" % (fnr, reply)) except suds.WebFault as detail: print detail def upload_images(client, fileglobs): filelist = get_file_list(fileglobs) if filelist == []: logging.warning("No files found.") for filename in filelist: if os.path.isfile(filename): fnr = os.path.basename(filename).split('.')[0] set_image(client, fnr, filename) else: logging.warning("Skipping '"+filename+"', not a file.") def usage(msg): if msg: print msg else: print "Usage: update_FS_images.py fileglob" print "Examples:\n\tupdate_FS_images.py 01234567123.jpg\n\tupdate_FS_images.py images/*.jpg" exit(1) def main(): options, args = getopt.getopt(sys.argv[1:], "") if args == []: usage(None) url = 'https://fsws.usit.no/fsservices/bas?wsdl' credentials = dict(username='username', password='password') t = HttpAuthenticated(**credentials) client = Client(url, location="https://fsws.usit.no/fsservices/bas", transport=t) upload_images(client, args) if __name__ == "__main__": main()