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); }
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; }
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); } }
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); }