void DirectoryPickerDialog::showEvent(QShowEvent *)
{
    QList<QTreeWidgetItem *> items;
    apisock *conn;
    binresult *res, *result, *rn;
    binresult root;
    QByteArray auth=app->settings->get("auth").toUtf8();
    if (!(conn=app->getAPISock())){
        showError("Could not connect to server. Check your Internet connection.");
        return;
    }
    ui->dirtree->clear();
    ui->dirtree->setColumnCount(1);
    ui->dirtree->setHeaderLabels(QStringList("Name"));
    res=send_command(conn, "listfolder",
                     P_LSTR("auth", auth.constData(), auth.size()),
                     P_STR("filtermeta", "contents,folderid,name"),
                     P_NUM("folderid", 0),
                     P_BOOL("recursive", 1),
                     P_BOOL("nofiles", 1),
                     P_BOOL("noshares", onlyMine));
    api_close(conn);
    result=find_res(res, "result");
    if (!result){
        showError("Could not connect to server. Check your Internet connection.");
        free(res);
        return;
    }
    if (result->num!=0){
        showError(find_res(res, "error")->str);
        free(res);
        return;
    }
    if (showRoot){
        root.type=PARAM_ARRAY;
        root.length=1;
        root.array=&rn;
        rn=find_res(res, "metadata");
        result=&root;
    }
    else
        result=find_res(find_res(res, "metadata"), "contents");
    items=binresToQList(result);
    ui->dirtree->insertTopLevelItems(0, items);
    ui->dirtree->sortByColumn(0, Qt::AscendingOrder);
    if (items.count()){
      ui->dirtree->setCurrentItem(items[0]);
      ui->dirtree->expandItem(items[0]);
    }
    free(res);
}
Exemple #2
0
int main(){
  apisock *sock;
  binresult *res;
  sock=api_connect();
  if (!sock){
    fprintf(stderr, "Cannot connect to server\n");
    return 1;
  }
  res=send_command(sock, "userinfo", P_STR("auth", "Ec7QkEjFUnzZ7Z8W2YH1qLgxY7gGvTe09AH0i7V3kX"));
  if (!res){
    fprintf(stderr, "Command failed\n");
    return 1;
  }
  print_tree(res, 0);
  free(res);
  res=send_command(sock, "diff", P_NUM("folderid", 0), P_BOOL("recursive", 1), P_STR("timeformat", "timestamp"));
  if (!res){
    fprintf(stderr, "Command failed\n");
    return 1;
  }
  print_tree(res, 0);
  free(res);
  return 0;
  send_command_nb(sock, "diff", P_NUM("diffid", 0));
  res=get_result(sock);
  if (!res){
    fprintf(stderr, "Command failed\n");
    return 1;
  }
  print_tree(res, 0);
//  printf("%u %llu\n", res->type, res->num);
  free(res);
  api_close(sock);
  return 0;
}
Exemple #3
0
void PCloudApp::mount()
{
    if (this->authentication != ""){
        QByteArray auth=this->authentication.toUtf8();
        apisock *conn=getAPISock();
        binresult *res, *result;
        QByteArray err;
        if (!conn)
            return;
        res=send_command(conn, "userinfo",
                         P_LSTR("auth", auth.constData(), auth.size()),
                         P_BOOL("getauth", 1));
        api_close(conn);
        result=find_res(res, "result");
        if (!result){
            free(res);
            return;
        }
        if (result->num!=0){
            free(res);
            return;
        }
        userLogged(res, err, true);
        free(res);
    }
}
Exemple #4
0
void RegisterWindow::doRegister(){
    if (!ui->accepttos->checkState()){
        setError("Registration only possible upon acceptance of terms.");
        return;
    }
    if (ui->password->text().length()<6){
        setError("Password too short - minimum 6 characters.");
        return;
    }
    if (ui->password->text()!=ui->confirmpassword->text()){
        setError("Password confirmation does not match.");
        return;
    }
    QByteArray email=ui->email->text().toUtf8();
    QByteArray password=ui->password->text().toUtf8();
    apisock *conn;
    binresult *res, *result;
    QByteArray err;
    quint64 type=0;
#if defined(Q_OS_WIN)
    type=5;
#elif defined(Q_OS_LINUX)
    type=7;
#elif defined(Q_OS_MAC)
    type=6;
#endif
    if (!(conn=app->getAPISock())){
        setError("Connection to server failed.");
        return;
    }
    res=send_command(conn, "register",
                     P_STR("termsaccepted", "yes"),
                     P_LSTR("mail", email.constData(), email.size()),
                     P_LSTR("password", password.constData(), password.size()),
                     P_NUM("os", type));
    result=find_res(res, "result");
    if (!result){
        setError("Connection to server failed.");
        free(res);
        api_close(conn);
        return;
    }
    if (result->num!=0){
        setError(find_res(res, "error")->str);
        free(res);
        api_close(conn);
        return;
    }
    res=send_command(conn, "userinfo",
                     P_LSTR("username", email.constData(), email.size()),
                     P_LSTR("password", password.constData(), password.size()),
                     P_BOOL("getauth", 1));
    api_close(conn);
    result=find_res(res, "result");
    if (!result){
        setError("Connection to server failed.");
        free(res);
        return;
    }
    if (result->num!=0){
        setError(find_res(res, "error")->str);
        free(res);
        return;
    }
    if (!app->userLogged(res, err, false))
        setError(err);
    else{
        setError("");
        ui->password->clear();
        ui->confirmpassword->clear();
        hide();
    }
    free(res);
}