Skip to content
This repository has been archived by the owner on Apr 27, 2020. It is now read-only.

Commit

Permalink
Merged PR #87 from @leijurv. Thanks for that. Closes #84.
Browse files Browse the repository at this point in the history
  • Loading branch information
fabianonline committed Mar 3, 2018
2 parents 12cc65a + d4a6141 commit 14324df
Showing 1 changed file with 5 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -316,7 +316,7 @@ class DownloadManager(internal var client: TelegramClient?, p: DownloadProgressI
try {
_downloadMedia()
} catch (e: RpcErrorException) {
if (e.getTag().startsWith("420: FLOOD_WAIT_")) {
if (e.getCode() == 420) { // FLOOD_WAIT
completed = false
Utils.obeyFloodWaitException(e)
} else {
Expand Down Expand Up @@ -432,9 +432,10 @@ class DownloadManager(internal var client: TelegramClient?, p: DownloadProgressI
try {
response = download_client!!.executeRpcQuery(req, dcID) as TLFile
} catch (e: RpcErrorException) {
if (e.getTag().startsWith("420: FLOOD_WAIT_")) {
if (e.getCode() == 420) { // FLOOD_WAIT
try_again = true
Utils.obeyFloodWaitException(e)
continue // response is null since we didn't actually receive any data. Skip the rest of this iteration and try again.
} else if (e.getCode() == 400) {
//Somehow this file is broken. No idea why. Let's skip it for now
return false
Expand All @@ -443,7 +444,7 @@ class DownloadManager(internal var client: TelegramClient?, p: DownloadProgressI
}
}

offset += response!!.getBytes().getData().size
offset += response.getBytes().getData().size
logger.trace("response: {} total size: {}", response.getBytes().getData().size, offset)

fos.write(response.getBytes().getData())
Expand All @@ -453,7 +454,7 @@ class DownloadManager(internal var client: TelegramClient?, p: DownloadProgressI
} catch (e: InterruptedException) {
}

} while (offset < size && (response!!.getBytes().getData().size > 0 || try_again))
} while (offset < size && (try_again || response!!.getBytes().getData().size > 0))
fos.close()
if (offset < size) {
System.out.println("Requested file $target with $size bytes, but got only $offset bytes.")
Expand Down

0 comments on commit 14324df

Please sign in to comment.