diff options
author | Bohdan Horbeshko <bodqhrohro@gmail.com> | 2022-03-09 22:15:56 +0300 |
---|---|---|
committer | Bohdan Horbeshko <bodqhrohro@gmail.com> | 2022-03-09 22:15:56 +0300 |
commit | 699d75552abf35b243e9f589b24c7d880a8c7423 (patch) | |
tree | 2d2ab7a5082fcd7235504dc74170c14b0bb2cc84 /telegram/handlers.go | |
parent | 4307f85a048e7f6783f112b9f243588e305a16fc (diff) |
Move downloaded files to a permanent location
Diffstat (limited to 'telegram/handlers.go')
-rw-r--r-- | telegram/handlers.go | 38 |
1 files changed, 4 insertions, 34 deletions
diff --git a/telegram/handlers.go b/telegram/handlers.go index fe4540c..62afd67 100644 --- a/telegram/handlers.go +++ b/telegram/handlers.go @@ -2,8 +2,6 @@ package telegram import ( "fmt" - "os" - "path/filepath" "strconv" "strings" "sync" @@ -107,13 +105,6 @@ func (c *Client) updateHandler() { uhOh() } c.updateDeleteMessages(typedUpdate) - case client.TypeUpdateFile: - typedUpdate, ok := update.(*client.UpdateFile) - if !ok { - uhOh() - } - c.updateFile(typedUpdate) - log.Debugf("%#v", typedUpdate.File) case client.TypeUpdateAuthorizationState: typedUpdate, ok := update.(*client.UpdateAuthorizationState) if !ok { @@ -214,10 +205,10 @@ func (c *Client) updateNewMessage(update *client.UpdateNewMessage) { } } else { text = c.messageToText(update.Message, false) - file, filename := c.contentToFilename(content) + file := c.contentToFile(content) - // download file(s) - if file != nil && !file.Local.IsDownloadingCompleted { + // download file (if one) + if file != nil { newFile, err := c.DownloadFile(file.Id, 1, true) if err == nil { file = newFile @@ -226,7 +217,7 @@ func (c *Client) updateNewMessage(update *client.UpdateNewMessage) { // OTR support (I do not know why would you need it, seriously) if !(strings.HasPrefix(text, "?OTR") || c.Session.RawMessages) { var prefix strings.Builder - prefix.WriteString(c.messageToPrefix(update.Message, c.formatContent(file, filename))) + prefix.WriteString(c.messageToPrefix(update.Message, c.formatFile(file))) if text != "" { // \n if it is groupchat and message is not empty if chatId < 0 { @@ -275,27 +266,6 @@ func (c *Client) updateDeleteMessages(update *client.UpdateDeleteMessages) { } } -// file downloaded -func (c *Client) updateFile(update *client.UpdateFile) { - // not really - if !update.File.Local.IsDownloadingCompleted { - return - } - - err := os.Symlink( - update.File.Local.Path, - c.formatFilePath(c.content.Path, update.File.Remote.UniqueId, filepath.Ext(update.File.Local.Path)), - ) - if err != nil { - linkErr := err.(*os.LinkError) - if linkErr.Err.Error() == "file exists" { - log.Warn(err.Error()) - } else { - log.Errorf("Error creating symlink: %v", err) - } - } -} - func (c *Client) updateAuthorizationState(update *client.UpdateAuthorizationState) { switch update.AuthorizationState.AuthorizationStateType() { case client.TypeAuthorizationStateClosing: |