Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,5 @@ build
out

.DS_Store
local.properties
local.properties
private.key
12 changes: 12 additions & 0 deletions library/src/main/java/com/pengrad/telegrambot/BotUtils.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@
import com.google.gson.Gson;
import com.pengrad.telegrambot.model.Update;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.Reader;

/**
Expand All @@ -21,4 +24,13 @@ public static Update parseUpdate(Reader reader) {
return gson.fromJson(reader, Update.class);
}

static byte[] getBytesFromInputStream(InputStream is) throws IOException {
ByteArrayOutputStream os = new ByteArrayOutputStream();
byte[] buffer = new byte[0xFFFF];
for (int len = is.read(buffer); len != -1; len = is.read(buffer)) {
os.write(buffer, 0, len);
}
return os.toByteArray();
}

}
14 changes: 14 additions & 0 deletions library/src/main/java/com/pengrad/telegrambot/TelegramBot.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,11 @@
import com.pengrad.telegrambot.request.BaseRequest;
import com.pengrad.telegrambot.request.GetUpdates;
import com.pengrad.telegrambot.response.BaseResponse;

import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;

import okhttp3.Interceptor;
import okhttp3.OkHttpClient;
import okhttp3.logging.HttpLoggingInterceptor;
Expand Down Expand Up @@ -44,6 +49,15 @@ public String getFullFilePath(File file) {
return fileApi.getFullFilePath(file.filePath());
}

public byte[] getFileContent(File file) throws Exception {
String fileUrl = getFullFilePath(file);
URLConnection connection = new URL(fileUrl).openConnection();
InputStream is = connection.getInputStream();
byte[] data = BotUtils.getBytesFromInputStream(is);
is.close();
return data;
}

public void setUpdatesListener(UpdatesListener listener) {
setUpdatesListener(listener, new GetUpdates());
}
Expand Down
12 changes: 11 additions & 1 deletion library/src/main/java/com/pengrad/telegrambot/model/Message.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package com.pengrad.telegrambot.model;

import com.pengrad.telegrambot.passport.PassportData;

import java.io.Serializable;
import java.util.Arrays;

Expand Down Expand Up @@ -54,6 +56,7 @@ public class Message implements Serializable {
private Invoice invoice;
private SuccessfulPayment successful_payment;
private String connected_website;
private PassportData passport_data;

public Integer messageId() {
return message_id;
Expand Down Expand Up @@ -235,6 +238,10 @@ public String connectedWebsite() {
return connected_website;
}

public PassportData passportData() {
return passport_data;
}

@Override
public boolean equals(Object o) {
if (this == o) return true;
Expand Down Expand Up @@ -307,7 +314,9 @@ public boolean equals(Object o) {
if (invoice != null ? !invoice.equals(message.invoice) : message.invoice != null) return false;
if (successful_payment != null ? !successful_payment.equals(message.successful_payment) : message.successful_payment != null)
return false;
return connected_website != null ? connected_website.equals(message.connected_website) : message.connected_website == null;
if (connected_website != null ? !connected_website.equals(message.connected_website) : message.connected_website != null)
return false;
return passport_data != null ? passport_data.equals(message.passport_data) : message.passport_data == null;
}

@Override
Expand Down Expand Up @@ -362,6 +371,7 @@ public String toString() {
", invoice=" + invoice +
", successful_payment=" + successful_payment +
", connected_website='" + connected_website + '\'' +
", passport_data=" + passport_data +
'}';
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
package com.pengrad.telegrambot.passport;

import java.io.Serializable;

/**
* Stas Parshin
* 31 July 2018
*/
public class Credentials implements Serializable {
private final static long serialVersionUID = 0L;

private SecureData secure_data;
private String payload;

public SecureData secureData() {
return secure_data;
}

public String payload() {
return payload;
}

@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;

Credentials that = (Credentials) o;

if (secure_data != null ? !secure_data.equals(that.secure_data) : that.secure_data != null) return false;
return payload != null ? payload.equals(that.payload) : that.payload == null;
}

@Override
public int hashCode() {
int result = secure_data != null ? secure_data.hashCode() : 0;
result = 31 * result + (payload != null ? payload.hashCode() : 0);
return result;
}

@Override
public String toString() {
return "Credentials{" +
"secure_data=" + secure_data +
", payload='" + payload + '\'' +
'}';
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
package com.pengrad.telegrambot.passport;

import java.io.Serializable;

/**
* Stas Parshin
* 31 July 2018
*/
public class DataCredentials implements Serializable {
private final static long serialVersionUID = 0L;

private String data_hash;
private String secret;

public String dataHash() {
return data_hash;
}

public String secret() {
return secret;
}

@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;

DataCredentials that = (DataCredentials) o;

if (data_hash != null ? !data_hash.equals(that.data_hash) : that.data_hash != null) return false;
return secret != null ? secret.equals(that.secret) : that.secret == null;
}

@Override
public int hashCode() {
int result = data_hash != null ? data_hash.hashCode() : 0;
result = 31 * result + (secret != null ? secret.hashCode() : 0);
return result;
}

@Override
public String toString() {
return "DataCredentials{" +
"data_hash='" + data_hash + '\'' +
", secret='" + secret + '\'' +
'}';
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package com.pengrad.telegrambot.passport;

/**
* Stas Parshin
* 02 August 2018
* <p>
* Decrypted data from the data field in EncryptedPassportElement.
* Can be one of the following types: PersonalDetails, IdDocumentData, ResidentialAddress
*/
abstract public class DecryptedData {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
package com.pengrad.telegrambot.passport;

import com.pengrad.telegrambot.passport.decrypt.Decrypt;

import java.io.Serializable;

/**
* Stas Parshin
* 30 July 2018
*/
public class EncryptedCredentials implements Serializable {
private final static long serialVersionUID = 0L;

private String data;
private String hash;
private String secret;

public Credentials decrypt(String privateKey) throws Exception {
return Decrypt.decryptCredentials(privateKey, data, hash, secret);
}

public String data() {
return data;
}

public String hash() {
return hash;
}

public String secret() {
return secret;
}

@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;

EncryptedCredentials that = (EncryptedCredentials) o;

if (data != null ? !data.equals(that.data) : that.data != null) return false;
if (hash != null ? !hash.equals(that.hash) : that.hash != null) return false;
return secret != null ? secret.equals(that.secret) : that.secret == null;
}

@Override
public int hashCode() {
int result = data != null ? data.hashCode() : 0;
result = 31 * result + (hash != null ? hash.hashCode() : 0);
result = 31 * result + (secret != null ? secret.hashCode() : 0);
return result;
}

@Override
public String toString() {
return "EncryptedCredentials{" +
"data='" + data + '\'' +
", hash='" + hash + '\'' +
", secret='" + secret + '\'' +
'}';
}
}
Loading