use of com.odysee.app.exceptions.LbryResponseException in project odysee-android by OdyseeTeam.
the class Lbry method get.
public static LbryFile get(boolean saveFile) throws ApiCallException {
LbryFile file = null;
Map<String, Object> params = new HashMap<>();
params.put("save_file", saveFile);
try {
JSONObject result = (JSONObject) parseResponse(apiCall(METHOD_GET, params));
file = LbryFile.fromJSONObject(result);
if (file != null) {
String fileClaimId = file.getClaimId();
if (!Helper.isNullOrEmpty(fileClaimId)) {
ClaimCacheKey key = new ClaimCacheKey();
key.setClaimId(fileClaimId);
if (claimCache.containsKey(key)) {
claimCache.get(key).setFile(file);
}
}
}
} catch (LbryRequestException | LbryResponseException ex) {
throw new ApiCallException("Could not execute resolve call", ex);
}
return file;
}
use of com.odysee.app.exceptions.LbryResponseException in project odysee-android by OdyseeTeam.
the class Lbry method transactionList.
public static List<Transaction> transactionList(int page, int pageSize, String authToken) throws ApiCallException {
List<Transaction> transactions = new ArrayList<>();
Map<String, Object> params = new HashMap<>();
if (page > 0) {
params.put("page", page);
}
if (pageSize > 0) {
params.put("page_size", pageSize);
}
if (authToken != "") {
params.put("auth_token", authToken);
}
try {
JSONObject result = (JSONObject) parseResponse(apiCall(METHOD_TRANSACTION_LIST, params, API_CONNECTION_STRING));
JSONArray items = result.getJSONArray("items");
for (int i = 0; i < items.length(); i++) {
Transaction tx = Transaction.fromJSONObject(items.getJSONObject(i));
transactions.add(tx);
}
} catch (LbryRequestException | LbryResponseException | JSONException ex) {
throw new ApiCallException("Could not execute transaction_list call", ex);
}
return transactions;
}
use of com.odysee.app.exceptions.LbryResponseException in project odysee-android by OdyseeTeam.
the class Lbry method claimSearch.
public static List<Claim> claimSearch(Map<String, Object> options, String connectionString) throws ApiCallException {
if (claimSearchCache.containsKey(options)) {
ClaimSearchCacheValue value = claimSearchCache.get(options);
if (!value.isExpired(TTL_CLAIM_SEARCH_VALUE)) {
return claimSearchCache.get(options).getClaims();
}
}
List<Claim> claims = new ArrayList<>();
try {
JSONObject result = (JSONObject) parseResponse(apiCall(METHOD_CLAIM_SEARCH, options, connectionString));
JSONArray items = result.getJSONArray("items");
if (items != null) {
for (int i = 0; i < items.length(); i++) {
Claim claim = Claim.fromJSONObject(items.getJSONObject(i));
// audio and video, even for reposted claims
if (!Claim.TYPE_COLLECTION.equalsIgnoreCase(claim.getValueType()) && !claim.hasSource() && claim.getSigningChannel() != null) {
String urlLivestream = String.format("https://api.live.odysee.com/v1/odysee/live/%s", claim.getSigningChannel().getClaimId());
Request.Builder builder = new Request.Builder().url(urlLivestream);
Request request = builder.build();
OkHttpClient client = new OkHttpClient.Builder().build();
try {
Response resp = client.newCall(request).execute();
String responseString = resp.body().string();
resp.close();
JSONObject json = new JSONObject(responseString);
if (resp.code() >= 200 && resp.code() < 300) {
if (!json.isNull("data") && (json.has("success") && json.getBoolean("success"))) {
JSONObject jsonData = (JSONObject) json.get("data");
if (jsonData.has("live")) {
claim.setLive(jsonData.getBoolean("live"));
claim.setLivestreamUrl(jsonData.getString("url"));
}
}
}
} catch (IOException | JSONException e) {
e.printStackTrace();
}
}
// For now, only claims which are audio, videos, playlists or livestreaming right now can be viewed
if (Arrays.asList(Claim.TYPE_REPOST, Claim.TYPE_COLLECTION, Claim.TYPE_CHANNEL).contains(claim.getValueType().toLowerCase()) || (!claim.hasSource() && claim.isLive()) || (claim.hasSource() && (claim.getMediaType().contains("video") || claim.getMediaType().contains("audio")))) {
claims.add(claim);
}
addClaimToCache(claim);
}
}
claimSearchCache.put(options, new ClaimSearchCacheValue(claims, System.currentTimeMillis()));
} catch (LbryRequestException | LbryResponseException | JSONException ex) {
throw new ApiCallException("Could not execute resolve call", ex);
}
return claims;
}
use of com.odysee.app.exceptions.LbryResponseException in project odysee-android by OdyseeTeam.
the class Lbry method parseStatus.
public static void parseStatus(String response) {
try {
JSONObject json = parseSdkResponse(response);
INSTALLATION_ID = json.getString("installation_id");
if (json.has("lbry_id")) {
// if DHT is not enabled, lbry_id won't be set
NODE_ID = json.getString("lbry_id");
}
IS_STATUS_PARSED = true;
} catch (JSONException | LbryResponseException ex) {
// pass
Log.e(TAG, "Could not parse status response.", ex);
}
}
use of com.odysee.app.exceptions.LbryResponseException in project odysee-android by OdyseeTeam.
the class Lbry method resolve.
public static List<Claim> resolve(List<String> urls, String connectionString) throws ApiCallException {
List<Claim> claims = new ArrayList<>();
Map<String, Object> params = new HashMap<>();
params.put("urls", urls);
try {
JSONObject result = (JSONObject) parseResponse(apiCall(METHOD_RESOLVE, params, connectionString));
Iterator<String> keys = result.keys();
if (keys != null) {
while (keys.hasNext()) {
Claim claim = Claim.fromJSONObject(result.getJSONObject(keys.next()));
claims.add(claim);
addClaimToCache(claim);
}
}
} catch (LbryRequestException | LbryResponseException | JSONException ex) {
throw new ApiCallException("Could not execute resolve call", ex);
}
return claims;
}
Aggregations