From e3f7df790f6209e8cf304e4f2b3a282e8d26cdd2 Mon Sep 17 00:00:00 2001 From: Nate Date: Wed, 23 Oct 2019 11:03:10 -0400 Subject: [PATCH] Censoring Jonas & Other Fixes (#538) * s * censor jonas * f e e d s * IT * censoring again * token censor * stuff * censor * calm down * censor * Update CONTRIBUTING.md * grammar & context fixes * spelling & grammar fixes * fixes and things * minor fixes * more minor fixes * they can just submit a PR instead of DMing you * more stable than when written, plus not really needed * consistency within messsage * Even more minor fixes * Grammar, spelling, and context fixes * consistency & typos * updates * Minor fixes --- .gitignore | 4 ++-- CONTRIBUTING.md | 2 +- README.md | 2 +- automod/README.md | 6 +++--- automod/assets/automod.html | 2 +- automod/effects.go | 2 +- bot/eventsystem/README.md | 10 +++++----- cmd/yagpdb/posts/20-log-0.20.md | 2 +- cmd/yagpdb/sampleenvfile | 16 ++++++++-------- .../extras/TableTools/JSZip-2.5.0/jszip.js | 6 +++--- commands/commands.go | 4 ++-- commands/tmplexec.go | 2 +- commands/util.go | 2 +- logs/plugin_bot.go | 8 ++++---- reddit/README.md | 6 +++--- stdcommands/info/info.go | 4 +--- stdcommands/yagstatus/yagstatus.go | 4 ++-- tickets/assets/tickets_control_panel.html | 12 ++++++------ web/README.md | 4 ++-- web/middleware.go | 4 ++-- yagpdb_docker/app.example.env | 2 +- youtube/README.md | 10 +++++----- youtube/web.go | 2 +- 23 files changed, 57 insertions(+), 59 deletions(-) diff --git a/.gitignore b/.gitignore index 7666f7b1d3..9451b20d65 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ -# Just some shit +# Just some stuff cmd/yagpdb/static/bower_components cmd/yagpdb/static/pages cmd/yagpdb/static/index.html @@ -14,6 +14,6 @@ cmd/yagpdb/safebrowsing_db cmd/yagpdb/static/video/* # We don't want filthy pre-configured config files here ! >:O -# THe graw agent file +# The graw agent file *.agent *.exe diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ae1883b8aa..982978567a 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,4 +1,4 @@ -Are you planning on contributing or suggesting something for the bot? Go ahead, just make sure you know what you are doing, we don't wanna mess with trying to fix the bot if someone breaks it! +Are you planning on contributing or suggesting something for the bot? Go ahead, just make sure you know what you are doing, we don't want to have to fix the bot if someone breaks it! In order to make a suggestion, head to the [issues page](https://github.com/jonas747/yagpdb/issues) and make an issue titled "Suggestion: (name)" and fill out a little description. Please please please, check that this hasn't already been suggested or requested as a PR. diff --git a/README.md b/README.md index 289255c1c2..ae4462be5a 100644 --- a/README.md +++ b/README.md @@ -91,7 +91,7 @@ I may update the bot at any point to require newer versions of any of these, so **Steps for building:** -YAGPDB currently uses a lot of alternative branches of my projects, mainly because I also use a discordgo fork with a lot of goodies in it (why not push my changes upstream? Cause a shit ton of breaking changes that would never get accepted) +YAGPDB currently uses a lot of alternative branches of my projects, mainly because I also use a discordgo fork with a lot of goodies in it (why not push my changes upstream? Cause a ton of breaking changes that would never get accepted) I'm working towards making YAGPDB fully `go get ...`-able diff --git a/automod/README.md b/automod/README.md index 9b8173a2e8..1363977cc1 100644 --- a/automod/README.md +++ b/automod/README.md @@ -3,10 +3,10 @@ This is version 2 of YAGPDB automoderator, v1 was scrapped and is deprecated, th Quick design brainstorm: - Servers can create several rulesets - Rulesets contains sets of rules - - Rules contains a set of conditions that all needs to be met and another set of effects that will be executed once all the conditions for the rule is met + - Rules contains a set of conditions that all need to be met and another set of effects that will be executed once all the conditions for the rule are met - Infringement counters can either be ruleset scoped, global scoped, or custom key scoped (also either ruleset or global scoped, per user or per channel etc as well maybe?) - - With this you could have a stricter set of automod rules for new users and and more soft one for "trusted" long time members - - You should be able to toggle rulesets on with commands, so if you need to slow down a channel or a raid is happening you can employ very strict automod rules via a single command invocation + - With this you could have a stricter set of automod rules for new users, and and more soft one for "trusted" long time members + - You should be able to toggle rulesets on with commands, so if you need to slow down a channel or a raid is in progress, you can employ very strict automod rules via a single command invocation **Basic structure, with some example effects and conditions** diff --git a/automod/assets/automod.html b/automod/assets/automod.html index be7a074449..b031b6f1d0 100644 --- a/automod/assets/automod.html +++ b/automod/assets/automod.html @@ -142,7 +142,7 @@

Create a new rule

Create a new ruleset

-

Rulesets contains rules that you define afterwards

+

Rulesets contain rules that you define afterwards

diff --git a/automod/effects.go b/automod/effects.go index 83924c76d2..995185b2a7 100644 --- a/automod/effects.go +++ b/automod/effects.go @@ -652,7 +652,7 @@ func (gf *GiveRoleEffect) Apply(ctxData *TriggeredRuleData, settings interface{} err := common.AddRoleDS(ctxData.MS, settingsCast.Role) if err != nil { if code, _ := common.DiscordError(err); code != 0 { - return nil // discord responded with a proper error, we know that shit didn't happen + return nil // discord responded with a proper error, we know that it didn't break } // discord was not the cause of the error, in some cases even if the gateway times out the action is performed so just in case, scehdule the role removal diff --git a/bot/eventsystem/README.md b/bot/eventsystem/README.md index 0fdd1efdf4..9ae4f4830d 100644 --- a/bot/eventsystem/README.md +++ b/bot/eventsystem/README.md @@ -1,10 +1,10 @@ -# YAGPDBs event system +# YAGPDB's Event System -Instead of just using discordgo's standard simple event system, i like to experiment a little as i work on stuff to see what happens +Instead of just using discordgo's standard simple event system, I like to experiment a little as I work on stuff to see what happens. -It all boils down to a simple 3d slice of handlers (handlers [][][]Handler) +It all boils down to a simple 3D slice of handlers (handlers [][][]Handler) -The first index is the event index, that length is generated by events_gen.go +The first index is the event index, that length is generated by events_gen.go Next index is order, there is 3 orders: @@ -12,4 +12,4 @@ Next index is order, there is 3 orders: 1 - state handler is here 2 - last, ran concurrently from here on -orders 1 and 0 is ran syncrhounsly, but 2 is ran concurrently, this is to have the state be as proper as possible. \ No newline at end of file +Orders 1 and 0 are run synchronously, but 2 is run concurrently, this is in order to have the state be as proper as possible. diff --git a/cmd/yagpdb/posts/20-log-0.20.md b/cmd/yagpdb/posts/20-log-0.20.md index b6b31d05f1..fc9ad1295a 100644 --- a/cmd/yagpdb/posts/20-log-0.20.md +++ b/cmd/yagpdb/posts/20-log-0.20.md @@ -16,7 +16,7 @@ - Added ability to blacklist creation of logs from certain channels - Added sharding, since were (somehow) nearing the 2.5k single shard limit. - Started first steps to transitioning towards another state tracker that might give more consistent results when you're interacting with the bot - - Scheduled events now execute every 10 seconds (as opposed to 60) (means more responsive reminders and unmutes and shit) + - Scheduled events now execute every 10 seconds (as opposed to 60) (means more responsive reminders and unmutes, etc) - Fixed reminders command displayed stuff like 1 hour and 59 minutes, the actual time was correct but it just showed the time wrong - Added the ability for people with manage messages to view deleted messages, aswell as everyone (they are toggles) - Made things more reponsive in general to changes, in the past when giving someone a role that gives them acces to the control panel it could take up to a minute before that takes effect, now thats instant, although changing permissions on existing roles wont kick fully in within 10 seconds still (not sure if i want to disable caching completely on this part or not) diff --git a/cmd/yagpdb/sampleenvfile b/cmd/yagpdb/sampleenvfile index aef01ed627..3fe4691dce 100644 --- a/cmd/yagpdb/sampleenvfile +++ b/cmd/yagpdb/sampleenvfile @@ -7,8 +7,8 @@ YAGPDB_CLIENTSECRET="Insert client secret here" YAGPDB_BOTTOKEN="Bot token_here" # Used for the website, required for https and csrf protection -YAGPDB_HOST="somehost.com" -YAGPDB_EMAIL="insert@email.here" +YAGPDB_HOST="somehost.com" +YAGPDB_EMAIL="insert@email.here" # Postgres and redis YAGPDB_PQHOST="localhost" @@ -51,7 +51,7 @@ YAGPDB_TESTING="" # Administration # Used for YAGPDB_ADMINROLE and readonlyaccesrole YAGPDB_MAIN_SERVER="" -# Admins have access to things like shard reconnects, and full access to admin only commands +# Admins have access to things like shard reconnects, and full access to admin only commands YAGPDB_ADMIN_ROLE="" # Users in the main server with this role can access the control panel page of any server, but they can't modify any settings YAGPDB_READONLY_ACCESS_ROLE="" @@ -63,7 +63,7 @@ YAGPDB_CONNSTATUS_CHANNEL="" # Bot leaves joins to this channel YAGPDB_BOTLEAVESJOINS="" - + # Set to anything to disable the request logging of the webserver YAGPDB_DISABLE_REQUEST_LOGGING="" @@ -85,8 +85,8 @@ YAGPDB_GOOGLE_RECAPTCHA_SITE_KEY="" YAGPDB_GOOGLE_RECAPTCHA_SECRET="" # This will be used as the pubsubhubbub (websub) verify token when receiving callbacks on new video uploads -# if this gets leaked, people could spam shit -YAGPDB_YOUTUBE_VERIFY_TOKEN="some_secret_shit" +# if this gets leaked, people could spam stuff +YAGPDB_YOUTUBE_VERIFY_TOKEN="token_goes_here" ## These variables are for displaying an ad in the sidebar # Leave empty for nothing @@ -106,7 +106,7 @@ YAGPDB_GA_ID="" # The feed on /managed YAGPDB_ANNOUNCEMENTS_CHANNEL="" - + # Datadog integration YAGPDB_DOGSTATSDADDRESS="127.0.0.1:8125" @@ -125,4 +125,4 @@ YAGPDB_GOOGLE_RECAPTCHA_SECRET="" # YAGPDB_TWITTER_ACCESS_TOKEN= # YAGPDB_TWITTER_ACCESS_TOKEN_SECRET= # YAGPDB_TWITTER_CONSUMER_KEY= -# YAGPDB_TWITTER_CONSUMER_SECRET= \ No newline at end of file +# YAGPDB_TWITTER_CONSUMER_SECRET= diff --git a/cmd/yagpdb/static/vendor/datatables/extras/TableTools/JSZip-2.5.0/jszip.js b/cmd/yagpdb/static/vendor/datatables/extras/TableTools/JSZip-2.5.0/jszip.js index 76264c6c1c..d7cc25591c 100644 --- a/cmd/yagpdb/static/vendor/datatables/extras/TableTools/JSZip-2.5.0/jszip.js +++ b/cmd/yagpdb/static/vendor/datatables/extras/TableTools/JSZip-2.5.0/jszip.js @@ -1960,7 +1960,7 @@ exports.arrayBuffer2Blob = function(buffer, mimeType) { } catch (e) { - // well, fuck ?! + // it did an oopsie throw new Error("Bug : can't construct the Blob."); } } @@ -5727,7 +5727,7 @@ function GZheader() { // but leave for few code modifications // - // Setup limits is not necessary because in js we should not preallocate memory + // Setup limits is not necessary because in js we should not preallocate memory // for inflate use constant limit in 65536 bytes // @@ -9152,4 +9152,4 @@ function ZStream() { module.exports = ZStream; },{}]},{},[9]) (9) -}); \ No newline at end of file +}); diff --git a/commands/commands.go b/commands/commands.go index ac49d589e8..d0f18a0918 100644 --- a/commands/commands.go +++ b/commands/commands.go @@ -1,7 +1,7 @@ package commands //go:generate sqlboiler --no-hooks psql -//REMOVED: generate easyjson commands.go +//REMOVED: generate easyjson commands.go import ( "github.com/jonas747/dcmd" @@ -70,7 +70,7 @@ func InitCommands() { Prefix: &Plugin{}, } - // We have our own middleware before the argument parsing, this is to check for things such as wether the command is enabled at all + // We have our own middleware before the argument parsing, this is to check for things such as whether or not the command is enabled at all CommandSystem.Root.AddMidlewares(YAGCommandMiddleware, dcmd.ArgParserMW) CommandSystem.Root.AddCommand(cmdHelp, cmdHelp.GetTrigger()) CommandSystem.Root.AddCommand(cmdPrefix, cmdPrefix.GetTrigger()) diff --git a/commands/tmplexec.go b/commands/tmplexec.go index 1564bf30f6..2bfb583e5f 100644 --- a/commands/tmplexec.go +++ b/commands/tmplexec.go @@ -207,7 +207,7 @@ func execCmd(tmplCtx *templates.Context, dryRun bool, m *discordgo.MessageCreate for i := range data.ContainerChain { if i == len(data.ContainerChain)-1 { - // skip middlewares in original container to bypass cooldowns and shit + // skip middlewares in original container to bypass cooldowns and stuff continue } runFunc = data.ContainerChain[len(data.ContainerChain)-1-i].BuildMiddlewareChain(runFunc, foundCmd) diff --git a/commands/util.go b/commands/util.go index b9c68da990..0c6d4f95a9 100644 --- a/commands/util.go +++ b/commands/util.go @@ -201,7 +201,7 @@ func CommonContainerNotFoundHandler(container *dcmd.Container, fixedMessage stri enabled := false - // make sure that atleast 1 command in the container is enabled + // make sure that at least 1 command in the container is enabled for _, v := range container.Commands { cast := v.Command.(*YAGCommand) settings, err := cast.GetSettingsWithLoadedOverrides(chain, data.GS.ID, channelOverrides) diff --git a/logs/plugin_bot.go b/logs/plugin_bot.go index 258db40521..83e552a214 100644 --- a/logs/plugin_bot.go +++ b/logs/plugin_bot.go @@ -101,7 +101,7 @@ var cmdWhois = &commands.YAGCommand{ } if joinedAtDurStr == "" { - joinedAtDurStr = "Lesss than an hour ago" + joinedAtDurStr = "Less than an hour ago" } t := bot.SnowflakeToTime(member.ID) @@ -123,7 +123,7 @@ var cmdWhois = &commands.YAGCommand{ Inline: true, }, &discordgo.MessageEmbedField{ - Name: "Account created", + Name: "Account Created", Value: t.UTC().Format(time.RFC822), Inline: true, }, @@ -133,11 +133,11 @@ var cmdWhois = &commands.YAGCommand{ Inline: true, }, &discordgo.MessageEmbedField{ - Name: "Joined server at", + Name: "Joined Server At", Value: joinedAtStr, Inline: true, }, &discordgo.MessageEmbedField{ - Name: "Join server Age", + Name: "Join Server Age", Value: joinedAtDurStr, Inline: true, }, diff --git a/reddit/README.md b/reddit/README.md index 5049f3b45e..40bc3324d0 100644 --- a/reddit/README.md +++ b/reddit/README.md @@ -2,13 +2,13 @@ ### How the feed works -Uses the same method mee6 uses for reliable cost effective scanning of all reddit posts. +Uses the same method MEE6 uses for reliable cost effective scanning of all reddit posts. -works by by manually checking 100 ids per couple of second via the `/api/info.json?id=t3_id1,t3_id2` etc route. +Works by by manually checking 100 ids per couple of seconds via the `/api/info.json?id=t3_id1,t3_id2` etc route. It then updates the cursor to the highest returned post id, continuing from that next call. -I don't believe this method has any bad parts at this moment, it seems to be more than enough even at a 5 second interval, unlike the polling of /all/new this does not appear to have any limitations on old posts and also shows absolutely all posts. +I don't believe this method has any faults at this moment, it seems to be more than enough even at a 5 second interval, unlike the polling of /all/new this does not appear to have any limitations on old posts and also shows absolutely all posts. ### Redis layout: diff --git a/stdcommands/info/info.go b/stdcommands/info/info.go index 6f247b441e..6f36a28ae6 100644 --- a/stdcommands/info/info.go +++ b/stdcommands/info/info.go @@ -17,10 +17,8 @@ var Command = &commands.YAGCommand{ info := fmt.Sprintf(`**YAGPDB - Yet Another General Purpose Discord Bot** This bot focuses on being configurable and therefore is one of the more advanced bots. It can perform a range of general purpose functionality (Reddit feeds, various commands, moderation utilities, automoderator functionality and so on) and it's configured through a web control panel. -I'm currently being run and developed by Jonas747#0001 (105487308693757952) but the bot is open source (), so if you know Go and want to make some contributions, DM me. +I'm currently being run and developed by Jonas747#0001 (105487308693757952) but the bot is open source (), so if you know Go and want to make some contributions, feel free to make a PR. Control panel: - -Note: this bot has a lot of rough edges so to speak. `, common.ConfHost.GetString()) return info, nil diff --git a/stdcommands/yagstatus/yagstatus.go b/stdcommands/yagstatus/yagstatus.go index 55740e3b95..e24b8dc73a 100644 --- a/stdcommands/yagstatus/yagstatus.go +++ b/stdcommands/yagstatus/yagstatus.go @@ -66,13 +66,13 @@ func cmdFuncYagStatus(data *dcmd.Data) (interface{}, error) { Title: "YAGPDB Status, version " + common.VERSION, Fields: []*discordgo.MessageEmbedField{ &discordgo.MessageEmbedField{Name: "Servers", Value: fmt.Sprint(servers), Inline: true}, - &discordgo.MessageEmbedField{Name: "Go version", Value: runtime.Version(), Inline: true}, + &discordgo.MessageEmbedField{Name: "Go Version", Value: runtime.Version(), Inline: true}, &discordgo.MessageEmbedField{Name: "Uptime", Value: common.HumanizeDuration(common.DurationPrecisionSeconds, uptime), Inline: true}, &discordgo.MessageEmbedField{Name: "Goroutines", Value: fmt.Sprint(numGoroutines), Inline: true}, &discordgo.MessageEmbedField{Name: "GC Pause Fraction", Value: fmt.Sprintf("%.3f%%", memStats.GCCPUFraction*100), Inline: true}, &discordgo.MessageEmbedField{Name: "Process Mem (alloc, sys, freed)", Value: fmt.Sprintf("%.1fMB, %.1fMB, %.1fMB", float64(memStats.Alloc)/1000000, float64(memStats.Sys)/1000000, (float64(memStats.TotalAlloc)/1000000)-allocated), Inline: true}, &discordgo.MessageEmbedField{Name: "System Mem (used, total)", Value: sysMemStats, Inline: true}, - &discordgo.MessageEmbedField{Name: "System load (1, 5, 15)", Value: sysLoadStats, Inline: true}, + &discordgo.MessageEmbedField{Name: "System Load (1, 5, 15)", Value: sysLoadStats, Inline: true}, }, } diff --git a/tickets/assets/tickets_control_panel.html b/tickets/assets/tickets_control_panel.html index 4e77e7e493..a8526e0bbf 100644 --- a/tickets/assets/tickets_control_panel.html +++ b/tickets/assets/tickets_control_panel.html @@ -25,19 +25,19 @@

Tickets enabled

-

Tickets is a plugin which gives the ability for users on your server to open tickets which then only your staff and other ticket participants can interact with.

+

Tickets is a plugin which gives the ability for users on your server to open tickets, which then only your staff and other ticket participants can interact with.

The flow goes like this:

  1. User opens a ticket using -ticket open (reason-here)
  2. A new channel gets made in the open tickets category
  3. -
  4. Permissions on that channel is set so that only ticket participants gets access
  5. +
  6. Permissions on that channel is set so that only ticket participants get access
  7. User can also add more people to the ticket
  8. User talks with the staff, posts evidence in attachments or links
  9. -
  10. When its over the ticket is closed
  11. +
  12. When it's over, the ticket is closed
  13. All attachments and message history will then be downloaded and put in another channel (specified below)
  14. Channel gets deleted
-

There's more functionality here thats not mentioned, use -help ticket for all the commands.
+

There's more functionality here that's not mentioned, use -help ticket for all the commands.
More functionality is also planned, such as adding a interface on the website so that it can be used for things like ban appeals.

@@ -50,7 +50,7 @@

Tickets enabled

-
+
@@ -116,4 +116,4 @@

Tickets enabled

{{template "cp_footer" .}} -{{end}} \ No newline at end of file +{{end}} diff --git a/web/README.md b/web/README.md index 95245d5fcd..4672a302fc 100644 --- a/web/README.md +++ b/web/README.md @@ -2,8 +2,8 @@ This is the core webserver for YAGPDB, it handles general stuff like authentication. -Currently it only uses 2 HTTP methods, that is GET for everything that does not change state, and POST for everything else. +Currently it only uses 2 HTTP methods: GET for everything that does not change state, and POST for everything else. The web package is responsible for handling all the core features of the web suite for yagpdb, authentication, adding the bot to servers, and the other basic core functionality. -It also houses a small form validation toolkit through struct tags, this is all kinda messy but one day i hope to improve everything and make it a lot cleaner and easy to work with. \ No newline at end of file +It also houses a small form validation toolkit through struct tags (this is all kinda messy but one day i hope to improve everything and make it a lot cleaner and easy to work with). diff --git a/web/middleware.go b/web/middleware.go index b008e86924..1155a3d4b3 100644 --- a/web/middleware.go +++ b/web/middleware.go @@ -124,7 +124,7 @@ func SessionMiddleware(inner http.Handler) http.Handler { token, err := AuthTokenFromB64(cookie.Value) if err != nil { if err != ErrNotLoggedIn { - // this could really only happen if the user messes with the session token, or some other bullshit happens (like bad ram i guess) + // this could really only happen if the user messes with the session token, or some other BS happens (like bad ram i guess) CtxLogger(r.Context()).WithError(err).Error("invalid session") } @@ -347,7 +347,7 @@ func RequireGuildChannelsMiddleware(inner http.Handler) http.Handler { return } - // SORT THESE MOTHERFUCKERS + // Sort them sort.Sort(dutil.Channels(channels)) guild.Channels = channels diff --git a/yagpdb_docker/app.example.env b/yagpdb_docker/app.example.env index 685ef12526..520d7a3fb6 100644 --- a/yagpdb_docker/app.example.env +++ b/yagpdb_docker/app.example.env @@ -48,5 +48,5 @@ YAGPDB_REDDIT_REFRESHTOKEN=Reddit never-ending refreshtoken here (duration=perma GOOGLE_APPLICATION_CREDENTIALS=path/to/credentials.json # This will be used as the pubsubhubbub (websub) verify token when receiving callbacks on new video uploads -# if this gets leaked, people could spam shit +# if this gets leaked, people could spam feeds YAGPDB_YOUTUBE_VERIFY_TOKEN= diff --git a/youtube/README.md b/youtube/README.md index 87459b5c9c..6a42bf2b14 100644 --- a/youtube/README.md +++ b/youtube/README.md @@ -2,7 +2,7 @@ The feed plugin is complicated because we use the user's `uploads` playlist, and that is sorted by actual upload date instead of publish date. -So say you have this channels videos: +So say you have this channel's videos: 0. vid2 - uploaded 10pm - published 10pm 1. vid1 - uploaded 6pm - published 6pm @@ -13,9 +13,9 @@ Then a video was published (but uploaded a long time ago): 1. vid1 - uploaded 6pm - published 6pm 2. vid3 - uploaded 5pm - published 11pm -vid3 was published after the latest video but still appears at the bottom. this causes issues as we have no idea when to stop looking now. Currently YAGPDB handles this fine as long as it's not uploaded longer than 50 videos ago, in which case it may or may not catch it. +vid3 was published after the latest video, but still appears at the bottom. This causes issues, as we now have no idea when to stop looking. Currently YAGPDB handles this fine as long as it's not uploaded longer than 50 videos ago, in which case it may or may not catch it. -In the future I'll do a hybrid mode with search. Those super late published videos however will show up in Discord super late. I cannot use search for 100% either because it costs 100 times for api quota to use, meaning it could be up to hours behind. +In the future, I'll do a hybrid mode with search. Those super late published videos however will show up in Discord super late. I cannot use search for 100% either because it costs 100 times for api quota to use, meaning it could be up to hours behind. ### Storage layout: @@ -41,12 +41,12 @@ score is unix time in seconds when it was last checked key is the channel name score is unix time in seconds when it expires -At the start of a poll, it uses zrange/zrevrange to grab an amount of entries to process and if they do get processed it updates the score to the current unix time. +At the start of a poll, it uses zrange/zrevrange to grab an amount of entries to process, and if they do get processed, it updates the score to the current unix time. `youtube_last_video_time:{channel}` - string -Holds the time of the last video in that channel we processed, all videos before this will be ignored. +Holds the time of the last video in the processed channel. All videos before this will be ignored. `youtube_last_video_id:{channel}` - string diff --git a/youtube/web.go b/youtube/web.go index c3a1221d6d..c614ac9c09 100644 --- a/youtube/web.go +++ b/youtube/web.go @@ -129,7 +129,7 @@ func BaseEditHandler(inner web.ControllerHandlerFunc) web.ControllerHandlerFunc id := pat.Param(r, "item") - // Get tha actual watch item from the config + // Get the actual watch item from the config var sub ChannelSubscription err := common.GORM.Model(&ChannelSubscription{}).Where("id = ?", id).First(&sub).Error if err != nil {