forked from lug/matterbridge
		
	Compare commits
	
		
			7 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | d2cfd235ef | ||
|   | f8bf7f8d76 | ||
|   | 8432330cb2 | ||
|   | 02577a2b5c | ||
|   | 73501739d5 | ||
|   | ba674af5d4 | ||
|   | 3c85d937c6 | 
| @@ -76,9 +76,10 @@ func (b *Bdiscord) Connect() error { | |||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return err | 		return err | ||||||
| 	} | 	} | ||||||
|  | 	serverName := strings.Replace(b.GetString("Server"), "ID:", "", -1) | ||||||
| 	b.Nick = userinfo.Username | 	b.Nick = userinfo.Username | ||||||
| 	for _, guild := range guilds { | 	for _, guild := range guilds { | ||||||
| 		if guild.Name == b.GetString("Server") { | 		if guild.Name == serverName || guild.ID == serverName { | ||||||
| 			b.Channels, err = b.c.GuildChannels(guild.ID) | 			b.Channels, err = b.c.GuildChannels(guild.ID) | ||||||
| 			b.guildID = guild.ID | 			b.guildID = guild.ID | ||||||
| 			if err != nil { | 			if err != nil { | ||||||
|   | |||||||
| @@ -202,6 +202,13 @@ func (b *Bslack) handleStatusEvent(ev *slack.MessageEvent, rmsg *config.Message) | |||||||
| 		rmsg.Event = config.EventJoinLeave | 		rmsg.Event = config.EventJoinLeave | ||||||
| 	case sChannelTopic, sChannelPurpose: | 	case sChannelTopic, sChannelPurpose: | ||||||
| 		rmsg.Event = config.EventTopicChange | 		rmsg.Event = config.EventTopicChange | ||||||
|  | 	case sMessageChanged: | ||||||
|  | 		rmsg.Text = ev.SubMessage.Text | ||||||
|  | 		// handle deleted thread starting messages | ||||||
|  | 		if ev.SubMessage.Text == "This message was deleted." { | ||||||
|  | 			rmsg.Event = config.EventMsgDelete | ||||||
|  | 			return true | ||||||
|  | 		} | ||||||
| 	case sMessageDeleted: | 	case sMessageDeleted: | ||||||
| 		rmsg.Text = config.EventMsgDelete | 		rmsg.Text = config.EventMsgDelete | ||||||
| 		rmsg.Event = config.EventMsgDelete | 		rmsg.Event = config.EventMsgDelete | ||||||
|   | |||||||
| @@ -48,6 +48,7 @@ const ( | |||||||
| 	sChannelLeave    = "channel_leave" | 	sChannelLeave    = "channel_leave" | ||||||
| 	sChannelJoined   = "channel_joined" | 	sChannelJoined   = "channel_joined" | ||||||
| 	sMemberJoined    = "member_joined_channel" | 	sMemberJoined    = "member_joined_channel" | ||||||
|  | 	sMessageChanged  = "message_changed" | ||||||
| 	sMessageDeleted  = "message_deleted" | 	sMessageDeleted  = "message_deleted" | ||||||
| 	sSlackAttachment = "slack_attachment" | 	sSlackAttachment = "slack_attachment" | ||||||
| 	sPinnedItem      = "pinned_item" | 	sPinnedItem      = "pinned_item" | ||||||
| @@ -356,6 +357,10 @@ func (b *Bslack) editMessage(msg *config.Message, channelInfo *slack.Channel) (b | |||||||
| } | } | ||||||
|  |  | ||||||
| func (b *Bslack) postMessage(msg *config.Message, messageParameters *slack.PostMessageParameters, channelInfo *slack.Channel) (string, error) { | func (b *Bslack) postMessage(msg *config.Message, messageParameters *slack.PostMessageParameters, channelInfo *slack.Channel) (string, error) { | ||||||
|  | 	// don't post empty messages | ||||||
|  | 	if msg.Text == "" { | ||||||
|  | 		return "", nil | ||||||
|  | 	} | ||||||
| 	for { | 	for { | ||||||
| 		_, id, err := b.rtm.PostMessage(channelInfo.ID, msg.Text, *messageParameters) | 		_, id, err := b.rtm.PostMessage(channelInfo.ID, msg.Text, *messageParameters) | ||||||
| 		if err == nil { | 		if err == nil { | ||||||
| @@ -385,11 +390,16 @@ func (b *Bslack) uploadFile(msg *config.Message, channelID string) { | |||||||
| 		ts := time.Now() | 		ts := time.Now() | ||||||
| 		b.Log.Debugf("Adding file %s to cache at %s with timestamp", fi.Name, ts.String()) | 		b.Log.Debugf("Adding file %s to cache at %s with timestamp", fi.Name, ts.String()) | ||||||
| 		b.cache.Add("filename"+fi.Name, ts) | 		b.cache.Add("filename"+fi.Name, ts) | ||||||
|  | 		initialComment := fmt.Sprintf("File from %s", msg.Username) | ||||||
|  | 		if fi.Comment != "" { | ||||||
|  | 			initialComment += fmt.Sprintf("with comment: %s", fi.Comment) | ||||||
|  | 		} | ||||||
| 		res, err := b.sc.UploadFile(slack.FileUploadParameters{ | 		res, err := b.sc.UploadFile(slack.FileUploadParameters{ | ||||||
| 			Reader:         bytes.NewReader(*fi.Data), | 			Reader:          bytes.NewReader(*fi.Data), | ||||||
| 			Filename:       fi.Name, | 			Filename:        fi.Name, | ||||||
| 			Channels:       []string{channelID}, | 			Channels:        []string{channelID}, | ||||||
| 			InitialComment: fi.Comment, | 			InitialComment:  initialComment, | ||||||
|  | 			ThreadTimestamp: msg.ParentID, | ||||||
| 		}) | 		}) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			b.Log.Errorf("uploadfile %#v", err) | 			b.Log.Errorf("uploadfile %#v", err) | ||||||
|   | |||||||
							
								
								
									
										11
									
								
								changelog.md
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								changelog.md
									
									
									
									
									
								
							| @@ -1,3 +1,14 @@ | |||||||
|  | # v1.12.1 | ||||||
|  |  | ||||||
|  | ## Bugfix | ||||||
|  | * discord: fix regression on server ID connection #619 #617 | ||||||
|  | * discord: Limit discord username via webhook to 32 chars | ||||||
|  | * slack: Make sure threaded files stay in thread (slack). Fixes #590 | ||||||
|  | * slack: Do not post empty messages (slack). Fixes #574 | ||||||
|  | * slack: Handle deleted/edited thread starting messages (slack). Fixes #600 (#605) | ||||||
|  | * irc: Rework connection logic (irc) | ||||||
|  | * irc: Fix Nickserv logic (irc) #602 | ||||||
|  |  | ||||||
| # v1.12.0 | # v1.12.0 | ||||||
|  |  | ||||||
| ## Breaking changes | ## Breaking changes | ||||||
|   | |||||||
| @@ -14,7 +14,7 @@ import ( | |||||||
| ) | ) | ||||||
|  |  | ||||||
| var ( | var ( | ||||||
| 	version = "1.12.1-dev" | 	version = "1.12.1" | ||||||
| 	githash string | 	githash string | ||||||
| ) | ) | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1389,7 +1389,7 @@ enable=true | |||||||
|  |  | ||||||
|         #OPTIONAL - webhookurl only works for discord (it needs a different URL for each cahnnel) |         #OPTIONAL - webhookurl only works for discord (it needs a different URL for each cahnnel) | ||||||
|         [gateway.inout.options] |         [gateway.inout.options] | ||||||
|         webhookurl=""https://discordapp.com/api/webhooks/123456789123456789/C9WPqExYWONPDZabcdef-def1434FGFjstasJX9pYht73y" |         webhookurl="https://discordapp.com/api/webhooks/123456789123456789/C9WPqExYWONPDZabcdef-def1434FGFjstasJX9pYht73y" | ||||||
|  |  | ||||||
|     #API example |     #API example | ||||||
|     #[[gateway.inout]] |     #[[gateway.inout]] | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user