mirror of https://github.com/Nheko-Reborn/nheko
parent
f4f78b1d8a
commit
914bdecc0b
@ -1,3 +1,6 @@ |
||||
[submodule "libs/lmdbxx"] |
||||
path = libs/lmdbxx |
||||
url = https://github.com/bendiken/lmdbxx |
||||
[submodule "libs/matrix-structs"] |
||||
path = libs/matrix-structs |
||||
url = https://github.com/mujx/matrix-structs |
||||
|
@ -1,36 +0,0 @@ |
||||
/*
|
||||
* nheko Copyright (C) 2017 Konstantinos Sideris <siderisk@auth.gr> |
||||
* |
||||
* This program is free software: you can redistribute it and/or modify |
||||
* it under the terms of the GNU General Public License as published by |
||||
* the Free Software Foundation, either version 3 of the License, or |
||||
* (at your option) any later version. |
||||
* |
||||
* This program is distributed in the hope that it will be useful, |
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
* GNU General Public License for more details. |
||||
* |
||||
* You should have received a copy of the GNU General Public License |
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/ |
||||
|
||||
#pragma once |
||||
|
||||
#include <QJsonDocument> |
||||
#include <QUrl> |
||||
|
||||
class Deserializable; |
||||
|
||||
class ProfileResponse : public Deserializable |
||||
{ |
||||
public: |
||||
void deserialize(const QJsonDocument &data) override; |
||||
|
||||
QUrl getAvatarUrl() { return avatar_url_; }; |
||||
QString getDisplayName() { return display_name_; }; |
||||
|
||||
private: |
||||
QUrl avatar_url_; |
||||
QString display_name_; |
||||
}; |
@ -1,41 +0,0 @@ |
||||
/*
|
||||
* nheko Copyright (C) 2017 Konstantinos Sideris <siderisk@auth.gr> |
||||
* |
||||
* This program is free software: you can redistribute it and/or modify |
||||
* it under the terms of the GNU General Public License as published by |
||||
* the Free Software Foundation, either version 3 of the License, or |
||||
* (at your option) any later version. |
||||
* |
||||
* This program is distributed in the hope that it will be useful, |
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
* GNU General Public License for more details. |
||||
* |
||||
* You should have received a copy of the GNU General Public License |
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/ |
||||
|
||||
#pragma once |
||||
|
||||
#include <QJsonDocument> |
||||
#include <QVector> |
||||
|
||||
class Deserializable; |
||||
|
||||
class VersionsResponse : public Deserializable |
||||
{ |
||||
public: |
||||
void deserialize(const QJsonDocument &data) override; |
||||
|
||||
bool isVersionSupported(unsigned int major, unsigned int minor, unsigned int patch); |
||||
|
||||
private: |
||||
struct Version_ |
||||
{ |
||||
unsigned int major_; |
||||
unsigned int minor_; |
||||
unsigned int patch_; |
||||
}; |
||||
|
||||
QVector<Version_> supported_versions_; |
||||
}; |
@ -0,0 +1 @@ |
||||
Subproject commit 190f297478153930780a119268b908076599c8db |
@ -1,35 +0,0 @@ |
||||
/*
|
||||
* nheko Copyright (C) 2017 Konstantinos Sideris <siderisk@auth.gr> |
||||
* |
||||
* This program is free software: you can redistribute it and/or modify |
||||
* it under the terms of the GNU General Public License as published by |
||||
* the Free Software Foundation, either version 3 of the License, or |
||||
* (at your option) any later version. |
||||
* |
||||
* This program is distributed in the hope that it will be useful, |
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
* GNU General Public License for more details. |
||||
* |
||||
* You should have received a copy of the GNU General Public License |
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/ |
||||
|
||||
#include "Deserializable.h" |
||||
|
||||
#include "Profile.h" |
||||
|
||||
void |
||||
ProfileResponse::deserialize(const QJsonDocument &data) |
||||
{ |
||||
if (!data.isObject()) |
||||
throw DeserializationException("Response is not a JSON object"); |
||||
|
||||
QJsonObject object = data.object(); |
||||
|
||||
if (object.contains("avatar_url")) |
||||
avatar_url_ = QUrl(object.value("avatar_url").toString()); |
||||
|
||||
if (object.contains("displayname")) |
||||
display_name_ = object.value("displayname").toString(); |
||||
} |
@ -1,62 +0,0 @@ |
||||
/*
|
||||
* nheko Copyright (C) 2017 Jan Solanti <jhs@psonet.com> |
||||
* |
||||
* This program is free software: you can redistribute it and/or modify |
||||
* it under the terms of the GNU General Public License as published by |
||||
* the Free Software Foundation, either version 3 of the License, or |
||||
* (at your option) any later version. |
||||
* |
||||
* This program is distributed in the hope that it will be useful, |
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
* GNU General Public License for more details. |
||||
* |
||||
* You should have received a copy of the GNU General Public License |
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/ |
||||
|
||||
#include <QJsonArray> |
||||
#include <QRegExp> |
||||
|
||||
#include "Deserializable.h" |
||||
#include "Versions.h" |
||||
|
||||
void |
||||
VersionsResponse::deserialize(const QJsonDocument &data) |
||||
{ |
||||
if (!data.isObject()) |
||||
throw DeserializationException("Versions response is not a JSON object"); |
||||
|
||||
QJsonObject object = data.object(); |
||||
|
||||
if (object.value("versions") == QJsonValue::Undefined) |
||||
throw DeserializationException("Versions: missing version list"); |
||||
|
||||
auto versions = object.value("versions").toArray(); |
||||
for (auto const &elem : versions) { |
||||
QString str = elem.toString(); |
||||
QRegExp rx("r(\\d+)\\.(\\d+)\\.(\\d+)"); |
||||
|
||||
if (rx.indexIn(str) == -1) |
||||
throw DeserializationException( |
||||
"Invalid version string in versions response"); |
||||
|
||||
struct Version_ v; |
||||
v.major_ = rx.cap(1).toUInt(); |
||||
v.minor_ = rx.cap(2).toUInt(); |
||||
v.patch_ = rx.cap(3).toUInt(); |
||||
|
||||
supported_versions_.push_back(v); |
||||
} |
||||
} |
||||
|
||||
bool |
||||
VersionsResponse::isVersionSupported(unsigned int major, unsigned int minor, unsigned int patch) |
||||
{ |
||||
for (auto &v : supported_versions_) { |
||||
if (v.major_ == major && v.minor_ == minor && v.patch_ >= patch) |
||||
return true; |
||||
} |
||||
|
||||
return false; |
||||
} |
Loading…
Reference in new issue