2011-01-23 14 views
5

पर बाहरी वेबसाइट के माध्यम से तस्वीर अपलोड करें मैं सोच रहा था कि क्या मेरी साइट के माध्यम से gravatar साइट पर तस्वीर अपलोड करने के लिए अपलोड फ़ंक्शन बनाना संभव है?gravatar प्रोफाइल

उत्तर

2

हाँ यह संभव है!

import base64 

from xmlrpclib import ServerProxy, Fault 
from hashlib import md5 


class GravatarXMLRPC(object): 
    API_URI = 'https://secure.gravatar.com/xmlrpc?user={0}' 

    def __init__(self, request, password=''): 
     self.request = request 
     self.password = password 
     self.email = sanitize_email(request.user.email) 
     self.email_hash = md5_hash(self.email) 
     self._server = ServerProxy(
      self.API_URI.format(self.email_hash)) 

    def saveData(self, image): 
     """ Save binary image data as a userimage for this account """   
     params = { 'data': base64_encode(image.read()), 'rating': 0, } 
     return self._call('saveData', params) 
     #return self.useUserimage(image) 

    def _call(self, method, params={}): 
     """ Call a method from the API, gets 'grav.' prepended to it. """ 
     args = { 'password': self.password, } 
     args.update(params) 

     try: 
      return getattr(self._server, 'grav.' + method, None)(args) 
     except Fault as error: 
      error_msg = "Server error: {1} (error code: {0})" 
      print error_msg.format(error.faultCode, error.faultString) 


def base64_encode(obj): 
    return base64.b64encode(obj) 

def sanitize_email(email): 
    return email.lower().strip() 

def md5_hash(string): 
    return md5(string.encode('utf-8')).hexdigest() 

बस अपने ध्यान में रखते हुए वर्ग फोन :)

संबंधित मुद्दे