コード例 #1
0
    def __init__(self, root):
        self.return_value = ""
        self.root = root
        self.status = tk.StringVar()
        self.status.set("Building up connection...")

        try:
            self.client = seafileapi.connect(server=SERVER,
                                             username=USERNAME,
                                             password=PASSWORD)
        except:
            answer = messagebox.askretrycancel(
                "Connection Error!",
                "The internet-connection could not be established!" +
                " Please check your connection and hit retry. Or upload the annotation-results"
                +
                "by hand. They are in the .tmp Folder where the .exe file is")
            if answer is None:
                exit(1)
            elif answer == "retry":
                self.__init__(root)
                return
        self.repo_list = [rp.name for rp in self.client.repos.list_repos()]
        self.repo = self.client.repos.get_repo(REPOSITORY)
        self.current_folders = self.repo.list_directories('/')
        self.status = tk.StringVar()
        self.status.set("Connected to server...")
        self.label = tk.Label(self.root, textvariable=self.status)
        self.label.pack()
コード例 #2
0
ファイル: filesync.py プロジェクト: kooplex/kooplex-hub
def list_libraries(fstoken):
    syncserver = fstoken.syncserver
    if syncserver.backend_type == syncserver.TP_SEAFILE:
        client = seafileapi.connect(syncserver.url, fstoken.user.username,
                                    fstoken.token, None)
        for r in client.repos.list_repos():
            yield r
    else:
        raise NotImplementedError("Unknown version control system type: %s" %
                                  fstoken.type)
コード例 #3
0
ファイル: base.py プロジェクト: Willyfrog/python-seafile
def _create_client():
    return seafileapi.connect(SERVER, USER, PASSWORD)
コード例 #4
0
ファイル: fixtures.py プロジェクト: womchik/python-seafile
def client():
    return seafileapi.connect(SERVER, USER, PASSWORD)
コード例 #5
0
    keep_days = int(sys.argv[1])
    print('Day to keep: %s' % keep_days)

freed_size = 0
my_login = '******'
my_password = '******'
time_to_eternity = keep_days * 24 * 60 * 60


def list_dir(repo, path, indent=0):
    global freed_size
    seafdir = repo.get_dir(path)
    lst = seafdir.ls(force_refresh=True)
    for dirent in lst:
        file_age = (int(time.time()) - dirent.mtime)
        if file_age > time_to_eternity and not dirent.isdir:
            print("   " * indent, dirent.name, dirent.size, 'age',
                  file_age / 60 / 60 / 24)
            freed_size += dirent.size
        if dirent.isdir:
            list_dir(repo, dirent.path, indent + 1)
            if dirent.num_entries == 0:
                print('-- Empty dir: ', dirent.path)


client = seafileapi.connect('http://127.0.0.1:80', my_login, my_password)
repo_list = client.repos.list_repos()
for repo in repo_list:
    list_dir(repo, '/')
print('Total freed size: %d' % freed_size)
コード例 #6
0
    def __init__(self, root):
        self.client = seafileapi.connect(server=SERVER,
                                         username=USERNAME,
                                         password=PASSWORD)
        self.root = root
        self.success = False
        self.file_path = ""
        self.file_ending = ""
        self.current_files = None
        # self.root.geometry("600x400")
        self.root.columnconfigure(0, weight=1)
        self.root.rowconfigure(0, weight=1)
        self.current_dir_path = tk.StringVar()
        self.current_dir_path.set('')
        self.infotext = tk.StringVar()
        self.infotext.set(
            "Double-click on directories or files, latter to download it")

        self.files_fr = tk.Frame(root)
        self.files_fr.pack(expand=True, fill='both')

        self.files_navigation_fr = tk.Frame(self.files_fr)
        # [self.files_navigation_fr.grid_columnconfigure(i, weight=1)for i in range(3)]
        img = Image.open(os.path.join(os.getcwd(), 'icons', 'back.png'))
        img = resize_img(img, [30, 30])
        self.img = ImageTk.PhotoImage(img)
        self.dir_up_bt = tk.Button(self.files_navigation_fr,
                                   image=self.img,
                                   command=self.back)
        # self.dir_up_bt.grid(column=0, row=0, sticky='W')
        self.dir_up_bt.pack(side='left')
        self.current_directory_lb = tk.Label(
            self.files_navigation_fr,
            textvariable=self.current_dir_path,
            bg='white')
        # self.current_directory_lb.grid(row=0, column=1, sticky='WE')
        self.current_directory_lb.pack(side='left', expand=True)
        img = Image.open(os.path.join(os.getcwd(), 'icons', 'info.png'))
        img = resize_img(img, [30, 30])
        self.info_img = ImageTk.PhotoImage(img)
        self.info_bt = tk.Button(self.files_navigation_fr,
                                 image=self.info_img,
                                 command=self.show_info)
        # self.info_bt.grid(row=0, column=2, sticky='E')
        self.info_bt.pack(side='right')
        self.files_navigation_fr.pack(fill='x', side='top')

        self.directory_fr = tk.LabelFrame(self.files_fr, text='DIRECTORIES')
        self.directory_fr.pack(expand=True, fill='both', side='left')
        self.directory_fr.grid_columnconfigure(0, weight=1)
        self.directory_fr.grid_rowconfigure(0, weight=1)
        self.scrollbar_dirs = tk.Scrollbar(self.directory_fr,
                                           orient='vertical')
        self.directory_listbox = tk.Listbox(
            self.directory_fr,
            selectmode='single',
            yscrollcommand=self.scrollbar_dirs.set)
        self.directory_listbox.bind('<Double-Button-1>',
                                    self.__double_click_dirs_listbox)
        self.directory_listbox.grid(column=0, row=0, sticky='NSEW')
        self.scrollbar_dirs.config(command=self.directory_listbox.yview)
        self.scrollbar_dirs.grid(column=1, row=0, sticky='NS')

        self.files_in_directory_fr = tk.LabelFrame(self.files_fr, text="FILES")
        self.files_in_directory_fr.pack(expand=True, fill='both', side='right')
        self.files_in_directory_fr.grid_columnconfigure(0, weight=1)
        self.files_in_directory_fr.grid_rowconfigure(0, weight=1)
        self.scrollbar_files = tk.Scrollbar(self.files_in_directory_fr,
                                            orient='vertical')
        self.files_listbox = tk.Listbox(
            self.files_in_directory_fr,
            selectmode='single',
            yscrollcommand=self.scrollbar_files.set,
            setgrid=2)
        self.scrollbar_files.config(command=self.files_listbox.yview)
        self.files_listbox.bind('<Double-Button-1>',
                                self.__double_click_files_listbox)
        self.files_listbox.grid(column=0, row=0, sticky='NSEW')
        self.scrollbar_files.grid(column=1, row=0, sticky='NSEW')

        self.repo_list = [rp.name for rp in self.client.repos.list_repos()]

        self.repo = self.client.repos.get_repo(REPOSITORY)
        self.current_folders = self.repo.list_directories('/').entries
        self.current_dir_path.set('/')
        self.update_listboxes()
コード例 #7
0
ファイル: client.py プロジェクト: GregoireGalland/seafdav
def get_webapi_client():
    apiclient = seafileapi.connect('http://127.0.0.1:8000', USER, PASSWORD)
    return apiclient
コード例 #8
0
ファイル: client.py プロジェクト: zr0621/seafdav
def get_webapi_client():
    apiclient = seafileapi.connect('http://127.0.0.1:8000', USER, PASSWORD)
    return apiclient