Forgot to remove some helpers.

pull/46/head
Donnie Adams 10 years ago
parent 934ae1e733
commit c812cb8408
  1. 113
      helpers.go
  2. 2
      methods.go
  3. 9
      types.go

@ -29,127 +29,30 @@ func NewForward(chatID int, fromChatID int, messageID int) ForwardConfig {
} }
} }
// NewPhotoUpload creates a new photo uploader. // NewFileUpload creates a new photo uploader.
// This requires a file on the local filesystem to upload to Telegram. // This requires a file on the local filesystem to upload to Telegram.
// Perhaps set a ChatAction of ChatUploadPhoto while processing. // Perhaps set a ChatAction of ChatUploadPhoto while processing.
// //
// chatID is where to send it, filename is the path to the file. // chatID is where to send it, filename is the path to the file.
func NewPhotoUpload(chatID int, filename string) PhotoConfig { func NewFileUpload(chatID int, filename string, fileType FileType) FileConfig {
return PhotoConfig{ return FileConfig{
ChatID: chatID, ChatID: chatID,
UseExistingPhoto: false, UseExistingPhoto: false,
FilePath: filename, FilePath: filename,
FileType: fileType,
} }
} }
// NewPhotoShare shares an existing photo. // NewFileShare shares an existing photo.
// You may use this to reshare an existing photo without reuploading it. // You may use this to reshare an existing photo without reuploading it.
// //
// chatID is where to send it, fileID is the ID of the file already uploaded. // chatID is where to send it, fileID is the ID of the file already uploaded.
func NewPhotoShare(chatID int, fileID string) PhotoConfig { func NewPhotoShare(chatID int, fileID string, fileType FileType) FileConfig {
return PhotoConfig{ return FileConfig{
ChatID: chatID, ChatID: chatID,
UseExistingPhoto: true, UseExistingPhoto: true,
FileID: fileID, FileID: fileID,
} FileType: fileType,
}
// NewAudioUpload creates a new audio uploader.
// This requires a file on the local filesystem to upload to Telegram.
// Perhaps set a ChatAction of ChatRecordAudio or ChatUploadAudio while processing.
//
// chatID is where to send it, filename is the path to the file.
func NewAudioUpload(chatID int, filename string) AudioConfig {
return AudioConfig{
ChatID: chatID,
UseExistingAudio: false,
FilePath: filename,
}
}
// NewAudioShare shares an existing audio file.
// You may use this to reshare an existing audio file without reuploading it.
//
// chatID is where to send it, fileID is the ID of the audio already uploaded.
func NewAudioShare(chatID int, fileID string) AudioConfig {
return AudioConfig{
ChatID: chatID,
UseExistingAudio: true,
FileID: fileID,
}
}
// NewDocumentUpload creates a new document uploader.
// This requires a file on the local filesystem to upload to Telegram.
// Perhaps set a ChatAction of ChatUploadDocument while processing.
//
// chatID is where to send it, filename is the path to the file.
func NewDocumentUpload(chatID int, filename string) DocumentConfig {
return DocumentConfig{
ChatID: chatID,
UseExistingDocument: false,
FilePath: filename,
}
}
// NewDocumentShare shares an existing document.
// You may use this to reshare an existing document without reuploading it.
//
// chatID is where to send it, fileID is the ID of the document already uploaded.
func NewDocumentShare(chatID int, fileID string) DocumentConfig {
return DocumentConfig{
ChatID: chatID,
UseExistingDocument: true,
FileID: fileID,
}
}
// NewStickerUpload creates a new sticker uploader.
// This requires a file on the local filesystem to upload to Telegram.
//
// chatID is where to send it, filename is the path to the file.
func NewStickerUpload(chatID int, filename string) StickerConfig {
return StickerConfig{
ChatID: chatID,
UseExistingSticker: false,
FilePath: filename,
}
}
// NewStickerShare shares an existing sticker.
// You may use this to reshare an existing sticker without reuploading it.
//
// chatID is where to send it, fileID is the ID of the sticker already uploaded.
func NewStickerShare(chatID int, fileID string) StickerConfig {
return StickerConfig{
ChatID: chatID,
UseExistingSticker: true,
FileID: fileID,
}
}
// NewVideoUpload creates a new video uploader.
// This requires a file on the local filesystem to upload to Telegram.
// Perhaps set a ChatAction of ChatRecordVideo or ChatUploadVideo while processing.
//
// chatID is where to send it, filename is the path to the file.
func NewVideoUpload(chatID int, filename string) VideoConfig {
return VideoConfig{
ChatID: chatID,
UseExistingVideo: false,
FilePath: filename,
}
}
// NewVideoShare shares an existing video.
// You may use this to reshare an existing video without reuploading it.
//
// chatID is where to send it, fileID is the ID of the video already uploaded.
func NewVideoShare(chatID int, fileID string) VideoConfig {
return VideoConfig{
ChatID: chatID,
UseExistingVideo: true,
FileID: fileID,
} }
} }

@ -195,7 +195,7 @@ func (bot *BotAPI) SendFile(config FileConfig) (Message, error) {
if config.UseExistingPhoto { if config.UseExistingPhoto {
v := url.Values{} v := url.Values{}
v.Add("chat_id", strconv.Itoa(config.ChatID)) v.Add("chat_id", strconv.Itoa(config.ChatID))
v.Add(config.FileType, config.FileID) v.Add(config.FileType.String(), config.FileID)
if config.FileType == "photo" && config.Caption != "" { if config.FileType == "photo" && config.Caption != "" {
v.Add("caption", config.Caption) v.Add("caption", config.Caption)
} }

@ -2,6 +2,7 @@ package tgbotapi
import ( import (
"encoding/json" "encoding/json"
"net/url"
) )
// Constant values for ChatActions // Constant values for ChatActions
@ -19,8 +20,8 @@ const (
// FileType type which allows us to validate file types. // FileType type which allows us to validate file types.
type FileType string type FileType string
func (f *FileType) ValidFileType() bool { func (f FileType) ValidFileType() bool {
switch *f { switch f {
case "photo", "document", "video", "sticker", "audio": case "photo", "document", "video", "sticker", "audio":
return true return true
default: default:
@ -28,6 +29,10 @@ func (f *FileType) ValidFileType() bool {
} }
} }
func (f FileType) String() string {
return string(f)
}
// APIResponse is a response from the Telegram API with the result stored raw. // APIResponse is a response from the Telegram API with the result stored raw.
type APIResponse struct { type APIResponse struct {
Ok bool `json:"ok"` Ok bool `json:"ok"`