Esempio n. 1
0
 def __init__(self):
     print("BaiduYun")
     self.username = input("Username: "******"initialize BaiduYun for %s " % self.username)
     print("you may need to recognize a photo and input the message code")
     self.password = getpass.getpass()
     self.pcs = PCS(self.username, self.password)
def _get_pcs(conf):
    def _captcha_callback(img_url):
        code = _recognize_img(img_url)
        if code:
            return code

        logger.info('%s\nOpen url above, then input verify code.' % img_url)
        return raw_input('captcha> ')

    global _pcs
    if _pcs:
        return _pcs

    try:
        username = conf.get('baidupan', 'username')
        password = conf.get('baidupan', 'password')
        if not username or not password:
            logger.error('No username or password found.')
            sys.exit(-1)

        # _pcs = PCS(username, password,
        #            captcha_callback=_captcha_callback)
        _pcs = PCS(username, password)

        logger.info('Baidupan login successfully.')

        return _pcs
    except LoginFailed:
        import traceback
        traceback.print_exc()
        logger.error('Failed to login in baidupan.')
        sys.exit(-1)
Esempio n. 3
0
    def add_remote_download_task(self, link):
        """
            向百度网盘中添加离线下载链接
        """

        ruokuai_captcha_handler = functools.partial(
            self.ruokuai_captcha_handler, self.captcha_params)

        # 初始化pcs,这里设置了验证码处理函数和验证码处理参数
        pcs = PCS(
            self.baidu_username,
            self.baidu_password,
            ruokuai_captcha_handler,
            None,
        )

        # 获取下载路径中的文件,防止文件重复添加
        rsp = pcs.list_files(BASE_PATH)
        result = rsp.json()
        exist_list = []
        if result['errno'] == 0:
            exist_list = result['list']
        else:
            print(json.dumps(result))

        exist_names = [exist['server_filename'] for exist in exist_list]

        if link not in exist_names:
            # 网盘中不存在的才添加
            pcs.add_download_task(link, BASE_PATH)
        else:
            print(link + ' 已经存在于网盘中')
Esempio n. 4
0
def upload(file):
    pcs = PCS('username', 'userpwd')
    remote_path = '/apps/raspi/' + '-'.join(file.split('-')[:3])
    with open('file', 'rb') as f:
        try:
            pcs.upload(remote_path, f, file)
        except:
            pass
Esempio n. 5
0
 def __init__(self, filepath, username, password):
     """
     Login
     """
     (self.filepath, self.filename,
      self.dirname, self.filesize) = (filepath, os.path.basename(filepath),
                                      os.path.dirname(filepath),
                                      os.path.getsize(filepath))
     self.path = self.dirname + '\\' + self.filename.split('.')[0]
     self.pcs = PCS(username, password)  #Login
Esempio n. 6
0
File: dupan.py Progetto: zTrix/dupan
 def do_login(self, args, opts):
     print 'logging in, please wait ...'
     self.pcs = PCS(opts.username, opts.password, captcha_callback = handle_captcha)
     # self.pcs.get_fastest_pcs_server()
     res = {}
     for retry in range(3):
         res = json.loads(self.pcs.quota().content)
         if res['errno'] == 0:
             break
         else:
             res = {}
             time.sleep(retry+1)
     if res.get('errno') == 0:
         print 'Login success. storage used: %s/%s' % (readable_size(res['used']), readable_size(res['total']))
     else:
         print 'login failed: %r' % res
Esempio n. 7
0
    def __init__(self, username, password, *args, **kw):
        self.disk = PCS(username, password)
        self.buffer = {}
        self.traversed_folder = {}
        self.bufferLock = Lock()
        self.upload_blocks = {}  # 文件上传时用于记录块的md5,{PATH:{TMP:'',BLOCKS:''}
        self.create_tmp = {}  # {goutputstrem_path:file}
        self.upload_fails = {}  #
        self.fd = 3
        # 初始化百度服务器
        print '设置pcs服务器'
        pcs = self.disk.get_fastest_pcs_server()
        self.disk.set_pcs_server(pcs)
        print 'pcs api server:', pcs
        '''
        print '设置百度网盘服务器,时间比较长,请耐心等待'
        pan = self.disk.get_fastest_mirror()
        self.disk.set_pan_server(pan)
        print 'baidupan server',pan
        '''

        self.uploadLock = Lock()  # 上传文件时不刷新目录
        self.readLock = Lock()
        self.downloading_files = []
Esempio n. 8
0
from baidupcsapi import PCS
pcs = PCS('17624071108', '')
print(pcs.quota().content)
print(pcs.list_files('/').content)
Esempio n. 9
0
from baidupcsapi import PCS

pcs = PCS('lpbirdueng', 'lupeng')
#pcs.info(verify=False)
print pcs.quota().content
print pcs.list_files('/').content
Esempio n. 10
0
    with open(filePath, 'rb') as infile:
        while 1:
            data = infile.read(chunkSize)
            if len(data) == 0: break
            smallfile = os.path.join(tmpDir, 'tmp%d' % fid)
            with open(smallfile, 'wb') as f:
                f.write(data)
            print('chunk%d size %d' % (fid, len(data)))
            fid += 1
            print('start uploading...')
            ret = pcs.upload_tmpfile(open(smallfile, 'rb'),
                                     callback=ProgressBar())
            md5list.append(json.loads(ret.content)['md5'])
            print('md5: %s' % (md5list[-1]))
            os.remove(smallfile)

    os.rmdir(tmpDir)
    pcs.upload_superfile(os.path.join(remotePath, os.path.basename(filePath)),
                         md5list)


pcs = PCS('18661168001', 'Carl656693')
chunkSize = 1024 * 1024 * 256
tmpDir = tempfile.mkdtemp('bdpcs')
remotePath = "/yunbeifeng"

for each in os.listdir('upload'):
    print 'upload', each
    upload(os.path.join('upload', each), remotePath)
    print 'finish', each
Esempio n. 11
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
上传文件到百度网盘
>>> python upload_to_baidu_wangpan.py data/finance_news/finance_news.2017-05-14.csv.bz2 /Crawler/stock/finance_news/
"""

import sys
import os, json, sys, tempfile
from baidupcsapi import PCS

pcs = PCS('username', 'password')
chinksize = 1024 * 1024 * 16
fid = 1
md5list = []
tmpdir = tempfile.mkdtemp('bdpcs')
with open(sys.argv[1], 'rb') as infile:
    while 1:
        data = infile.read(chinksize)
        if len(data) == 0: break
        smallfile = os.path.join(tmpdir, 'tmp%d' % fid)
        with open(smallfile, 'wb') as f:
            f.write(data)
        print('chunk%d size %d' % (fid, len(data)))
        fid += 1
        print('start uploading...')
        ret = pcs.upload_tmpfile(open(smallfile, 'rb'))
        md5list.append(json.loads(ret.content)['md5'])
        print('md5: %s' % (md5list[-1]))
        os.remove(smallfile)
Esempio n. 12
0
                i=suffixs.index(suffix)
                addSuffix(name)
                print(name)
            except :
                pass

#addSuffixInFolders("/home/guci/我的坚果云")
addSuffixInFolders("/home/guci/share/baidunetdisk")
addSuffixInFolders("/home/guci/projects")
addSuffixInFolders("/home/guci/gdrive/all/")
print('finished')


#%%
from baidupcsapi import PCS
pcs = PCS('*****@*****.**','guci700127')
print (pcs.quota().content)
#print (pcs.list_files('/').content)


#%%
def indexFile(file):
    print(file)
def listFolder(folder):
    print(folder)
    try:
        elements= json.loads(pcs.list_files(folder).content.decode())["list"] 
        #pcs.list_files('/',"name","asc").json().get("list")
        for element in elements:
            if element["isdir"]==1:
                listFolder(element["path"])
Esempio n. 13
0
                progressbar.Percentage(), ' ',
                progressbar.Bar(marker=progressbar.RotatingMarker('>')), ' ',
                progressbar.ETA()
            ]
            self.pbar = progressbar.ProgressBar(widgets=self.widgets,
                                                maxval=kwargs['size']).start()
            self.first_call = False

        if kwargs['size'] <= kwargs['progress']:
            self.pbar.finish()
        else:
            self.pbar.update(kwargs['progress'])


def backup():
    try:
        copy(
            './database/data.db', './database/data' +
            strftime("%Y-%m-%d %H:%M:%S", localtime()) + '.db')
    except IOError as e:
        print("Unable to copy file. %s" % e)


if __name__ == '__main__':

    pcs = PCS('wbj512291', 'ILY999@wbJ')
    print(pcs.quota().content)
    # test_file = open('data.db', 'rb').read()
    print(pcs.list_files('/').content)
    # ret = pcs.upload('/', test_file, 'data.db', callback=ProgressBar())