Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var Command = &commands.YAGCommand{ CmdCategory: commands.CategoryTool, Name: "Undelete", Aliases: []string{"ud"}, Description: "Views your recent deleted messages, or all users deleted messages (with \"-a\" and manage messages perm) in this channel", RequiredArgs: 0, ArgSwitches: []*dcmd.ArgDef{ {Switch: "a", Name: "all"}, }, RunFunc: func(data *dcmd.Data) (interface{}, error) { allUsers := data.Switch("a").Value != nil && data.Switch("a").Value.(bool) if allUsers { perms, err := data.GS.MemberPermissions(true, data.CS.ID, data.Msg.Author.ID) if err != nil { return nil, err } if perms&discordgo.PermissionManageMessages != discordgo.PermissionManageMessages { return "You need `Manage Messages` permissions to view all users deleted messages", nil } } resp := "Up to 10 last deleted messages (last hour or 12 hours for premium): \n\n" numFound := 0 data.GS.RLock() defer data.GS.RUnlock() for i := len(data.CS.Messages) - 1; i >= 0 && numFound < 10; i-- { msg := data.CS.Messages[i] if !msg.Deleted { continue } if !allUsers && msg.Author.ID != data.Msg.Author.ID { continue } precision := common.DurationPrecisionHours if time.Since(msg.ParsedCreated) < time.Hour { precision = common.DurationPrecisionMinutes if time.Since(msg.ParsedCreated) < time.Minute { precision = common.DurationPrecisionSeconds } } timeSince := common.HumanizeDuration(precision, time.Since(msg.ParsedCreated)) resp += fmt.Sprintf("`%s ago (%s)` **%s**#%s: %s\n\n", timeSince, msg.ParsedCreated.UTC().Format(time.ANSIC), msg.Author.Username, msg.Author.Discriminator, msg.ContentWithMentionsReplaced()) numFound++ } if numFound == 0 { resp += "none..." } return resp, nil }, }
Functions ¶
This section is empty.
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.