From d377461602378a20f57dfea864d535579dc36a40 Mon Sep 17 00:00:00 2001 From: bobloy Date: Tue, 8 Sep 2020 13:56:28 -0400 Subject: [PATCH 01/22] WIP adding timezone to Cron triggers --- fifo/datetime_cron_converters.py | 15 +++++++++++++-- fifo/fifo.py | 11 ++++++++--- fifo/task.py | 5 ++++- 3 files changed, 25 insertions(+), 6 deletions(-) diff --git a/fifo/datetime_cron_converters.py b/fifo/datetime_cron_converters.py index d59ef37..b7f3dc4 100644 --- a/fifo/datetime_cron_converters.py +++ b/fifo/datetime_cron_converters.py @@ -1,8 +1,8 @@ -from datetime import datetime +from datetime import datetime, tzinfo from typing import TYPE_CHECKING from apscheduler.triggers.cron import CronTrigger -from dateutil import parser +from dateutil import parser, tz from discord.ext.commands import BadArgument, Converter from fifo.timezones import assemble_timezones @@ -11,6 +11,17 @@ if TYPE_CHECKING: DatetimeConverter = datetime CronConverter = str else: + class TimezoneConverter(Converter): + async def convert(self, ctx, argument) -> tzinfo: + tzinfos = assemble_timezones() + if argument.upper() in tzinfos: + return tzinfos[argument.upper()] + + timez = tz.gettz(argument) + + if timez is not None: + return timez + raise BadArgument() class DatetimeConverter(Converter): async def convert(self, ctx, argument) -> datetime: diff --git a/fifo/fifo.py b/fifo/fifo.py index e84e342..91991b0 100644 --- a/fifo/fifo.py +++ b/fifo/fifo.py @@ -11,7 +11,7 @@ from redbot.core import Config, checks, commands from redbot.core.bot import Red from redbot.core.commands import TimedeltaConverter -from .datetime_cron_converters import CronConverter, DatetimeConverter +from .datetime_cron_converters import CronConverter, DatetimeConverter, TimezoneConverter from .task import Task schedule_log = logging.getLogger("red.fox_v3.fifo.scheduler") @@ -444,7 +444,12 @@ class FIFO(commands.Cog): @fifo_trigger.command(name="cron") async def fifo_trigger_cron( - self, ctx: commands.Context, task_name: str, *, cron_str: CronConverter + self, + ctx: commands.Context, + task_name: str, + optional_tz: Optional[TimezoneConverter] = None, + *, + cron_str: CronConverter, ): """ Add a cron "time of day" trigger to the specified task @@ -460,7 +465,7 @@ class FIFO(commands.Cog): ) return - result = await task.add_trigger("cron", cron_str) + result = await task.add_trigger("cron", cron_str, optional_tz) if not result: await ctx.maybe_send_embed( "Failed to add a cron trigger to this task, see console for logs" diff --git a/fifo/task.py b/fifo/task.py index 83158d8..764ab8f 100644 --- a/fifo/task.py +++ b/fifo/task.py @@ -300,7 +300,10 @@ class Task: self.data["command_str"] = command_str return True - async def add_trigger(self, param, parsed_time: Union[timedelta, datetime, str]): + async def add_trigger( + self, param, parsed_time: Union[timedelta, datetime, str], timezone=None + ): + # TODO: Save timezone separately for cron and date triggers trigger_data = {"type": param, "time_data": parsed_time} if not get_trigger(trigger_data): return False From a046102549da655aff84aee909c73c135daea713 Mon Sep 17 00:00:00 2001 From: bobloy Date: Sat, 19 Sep 2020 20:24:41 -0400 Subject: [PATCH 02/22] Hotfix maybe_send_embed in lseen --- lseen/lseen.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/lseen/lseen.py b/lseen/lseen.py index a451f57..3348b65 100644 --- a/lseen/lseen.py +++ b/lseen/lseen.py @@ -75,9 +75,7 @@ class LastSeen(Cog): else: last_seen = await self.config.member(member).seen() if last_seen is None: - await ctx.maybe_send_embed( - embed=discord.Embed(description="I've never seen this user") - ) + await ctx.maybe_send_embed("I've never seen this user") return last_seen = self.get_date_time(last_seen) From f69e8fdb1a039c1b5f8f3e376d669188d4d22d73 Mon Sep 17 00:00:00 2001 From: bobloy Date: Mon, 21 Sep 2020 11:35:35 -0400 Subject: [PATCH 03/22] Handle track errors gracefully --- audiotrivia/audiosession.py | 21 +++++++++++++++------ audiotrivia/audiotrivia.py | 8 ++++++-- 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/audiotrivia/audiosession.py b/audiotrivia/audiosession.py index 780d4b9..4207fab 100644 --- a/audiotrivia/audiosession.py +++ b/audiotrivia/audiosession.py @@ -1,8 +1,12 @@ """Module to manage audio trivia sessions.""" import asyncio +import logging import lavalink from redbot.cogs.trivia import TriviaSession +from redbot.core.utils.chat_formatting import bold + +log = logging.getLogger("red.fox_v3.audiotrivia.audiosession") class AudioSession(TriviaSession): @@ -23,9 +27,9 @@ class AudioSession(TriviaSession): async def run(self): """Run the audio trivia session. - In order for the trivia session to be stopped correctly, this should - only be called internally by `TriviaSession.start`. - """ + In order for the trivia session to be stopped correctly, this should + only be called internally by `TriviaSession.start`. + """ await self._send_startup_msg() max_score = self.settings["max_score"] delay = self.settings["delay"] @@ -36,8 +40,8 @@ class AudioSession(TriviaSession): self.count += 1 await self.player.stop() - msg = "**Question number {}!**\n\nName this audio!".format(self.count) - await self.ctx.send(msg) + msg = bold(f"Question number {self.count}!") + "\n\nName this audio!" + await self.ctx.maybe_send_embed(msg) # print("Audio question: {}".format(question)) # await self.ctx.invoke(self.audio.play(ctx=self.ctx, query=question)) @@ -45,7 +49,12 @@ class AudioSession(TriviaSession): # await self.ctx.invoke(self.player.play, query=question) query = question.strip("<>") - tracks = await self.player.get_tracks(query) + load_result = await self.player.load_tracks(query) + if load_result.has_error: + await self.ctx.maybe_send_embed(f"Track has error, skipping. See logs for details") + log.info(f"Track has error: {load_result.exception_message}") + continue # Skip tracks with error + tracks = load_result.tracks seconds = tracks[0].length / 1000 if self.settings["repeat"] and seconds < delay: diff --git a/audiotrivia/audiotrivia.py b/audiotrivia/audiotrivia.py index c0c88fd..ec7b5ea 100644 --- a/audiotrivia/audiotrivia.py +++ b/audiotrivia/audiotrivia.py @@ -1,4 +1,5 @@ import datetime +import logging import pathlib from typing import List @@ -15,7 +16,7 @@ from redbot.core.utils.chat_formatting import box from .audiosession import AudioSession -# from redbot.cogs.audio.utils import userlimit +log = logging.getLogger("red.fox_v3.audiotrivia") class AudioTrivia(Trivia): @@ -166,7 +167,10 @@ class AudioTrivia(Trivia): # Delay in audiosettings overwrites delay in settings combined_settings = {**settings, **audiosettings} session = AudioSession.start( - ctx=ctx, question_list=trivia_dict, settings=combined_settings, player=lavaplayer, + ctx=ctx, + question_list=trivia_dict, + settings=combined_settings, + player=lavaplayer, ) self.trivia_sessions.append(session) LOG.debug("New audio trivia session; #%s in %d", ctx.channel, ctx.guild.id) From ec5d713fa01285d2f315ce9ebbcb128e4dfe78d4 Mon Sep 17 00:00:00 2001 From: bobloy Date: Mon, 21 Sep 2020 13:49:33 -0400 Subject: [PATCH 04/22] Correct listeners --- hangman/__init__.py | 1 - hangman/hangman.py | 48 ++++++++++++++++++++++----------------------- 2 files changed, 24 insertions(+), 25 deletions(-) diff --git a/hangman/__init__.py b/hangman/__init__.py index dbc62e7..35012c4 100644 --- a/hangman/__init__.py +++ b/hangman/__init__.py @@ -6,4 +6,3 @@ def setup(bot): n = Hangman(bot) data_manager.bundled_data_path(n) bot.add_cog(n) - bot.add_listener(n.on_react, "on_reaction_add") diff --git a/hangman/hangman.py b/hangman/hangman.py index c7d005d..2b6ab07 100644 --- a/hangman/hangman.py +++ b/hangman/hangman.py @@ -50,27 +50,27 @@ class Hangman(Cog): theface = await self.config.guild(guild).theface() self.hanglist[guild] = ( """> - \_________ + \\_________ |/ | | | | | - |\___ + |\\___ """, """> - \_________ + \\_________ |/ | | | | | | - |\___ + |\\___ H""", """> - \_________ + \\_________ |/ | | """ + theface @@ -79,10 +79,10 @@ class Hangman(Cog): | | | - |\___ + |\\___ HA""", """> - \________ + \\________ |/ | | """ + theface @@ -91,10 +91,10 @@ class Hangman(Cog): | | | | - |\___ + |\\___ HAN""", """> - \_________ + \\_________ |/ | | """ + theface @@ -103,43 +103,43 @@ class Hangman(Cog): | | | | - |\___ + |\\___ HANG""", """> - \_________ + \\_________ |/ | | """ + theface + """ - | /|\ + | /|\\ | | | | - |\___ + |\\___ HANGM""", """> - \________ + \\________ |/ | | """ + theface + """ - | /|\ + | /|\\ | | | / | - |\___ + |\\___ HANGMA""", """> - \________ + \\________ |/ | | """ + theface + """ - | /|\ + | /|\\ | | - | / \ + | / \\ | - |\___ + |\\___ HANGMAN""", ) @@ -255,7 +255,7 @@ class Hangman(Cog): elif i in self.the_data[guild]["guesses"] or i not in "ABCDEFGHIJKLMNOPQRSTUVWXYZ": out_str += "__" + i + "__ " else: - out_str += "**\_** " + out_str += "**\\_** " self.winbool[guild] = False return out_str @@ -286,10 +286,10 @@ class Hangman(Cog): await self._reprintgame(message) - @commands.Cog.listener() + @commands.Cog.listener("on_reaction_add") async def on_react(self, reaction, user: Union[discord.User, discord.Member]): - """ Thanks to flapjack reactpoll for guidelines - https://github.com/flapjax/FlapJack-Cogs/blob/master/reactpoll/reactpoll.py""" + """Thanks to flapjack reactpoll for guidelines + https://github.com/flapjax/FlapJack-Cogs/blob/master/reactpoll/reactpoll.py""" guild: discord.Guild = getattr(user, "guild", None) if guild is None: return From e0042780a1f9db38e29e42862da2972bd42a46fe Mon Sep 17 00:00:00 2001 From: bobloy Date: Wed, 23 Sep 2020 11:39:34 -0400 Subject: [PATCH 05/22] Better detection of bad questions in trivia --- audiotrivia/audiosession.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/audiotrivia/audiosession.py b/audiotrivia/audiosession.py index 4207fab..04d53c2 100644 --- a/audiotrivia/audiosession.py +++ b/audiotrivia/audiosession.py @@ -3,6 +3,7 @@ import asyncio import logging import lavalink +from lavalink.enums import LoadType from redbot.cogs.trivia import TriviaSession from redbot.core.utils.chat_formatting import bold @@ -42,6 +43,7 @@ class AudioSession(TriviaSession): msg = bold(f"Question number {self.count}!") + "\n\nName this audio!" await self.ctx.maybe_send_embed(msg) + log.debug(f"Audio question: {question}") # print("Audio question: {}".format(question)) # await self.ctx.invoke(self.audio.play(ctx=self.ctx, query=question)) @@ -50,7 +52,8 @@ class AudioSession(TriviaSession): # await self.ctx.invoke(self.player.play, query=question) query = question.strip("<>") load_result = await self.player.load_tracks(query) - if load_result.has_error: + log.debug(f"{load_result.load_type=}") + if load_result.has_error or load_result.load_type != LoadType.TRACK_LOADED: await self.ctx.maybe_send_embed(f"Track has error, skipping. See logs for details") log.info(f"Track has error: {load_result.exception_message}") continue # Skip tracks with error @@ -66,6 +69,7 @@ class AudioSession(TriviaSession): self.player.add(self.ctx.author, tracks[0]) if not self.player.current: + log.debug("Pressing play") await self.player.play() continue_ = await self.wait_for_answer(answers, delay, timeout) From bf81d7c1573a86026d26fc3c15befde72486b34e Mon Sep 17 00:00:00 2001 From: bobloy Date: Wed, 23 Sep 2020 11:57:17 -0400 Subject: [PATCH 06/22] Embeds and track variable --- audiotrivia/audiosession.py | 9 ++++++--- audiotrivia/audiotrivia.py | 20 ++++++++++---------- 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/audiotrivia/audiosession.py b/audiotrivia/audiosession.py index 04d53c2..1bdff02 100644 --- a/audiotrivia/audiosession.py +++ b/audiotrivia/audiosession.py @@ -58,15 +58,18 @@ class AudioSession(TriviaSession): log.info(f"Track has error: {load_result.exception_message}") continue # Skip tracks with error tracks = load_result.tracks - seconds = tracks[0].length / 1000 + + track = tracks[0] + seconds = track.length / 1000 if self.settings["repeat"] and seconds < delay: + # Append it until it's longer than the delay tot_length = seconds + 0 while tot_length < delay: - self.player.add(self.ctx.author, tracks[0]) + self.player.add(self.ctx.author, track) tot_length += seconds else: - self.player.add(self.ctx.author, tracks[0]) + self.player.add(self.ctx.author, track) if not self.player.current: log.debug("Pressing play") diff --git a/audiotrivia/audiotrivia.py b/audiotrivia/audiotrivia.py index ec7b5ea..0bab980 100644 --- a/audiotrivia/audiotrivia.py +++ b/audiotrivia/audiotrivia.py @@ -84,24 +84,24 @@ class AudioTrivia(Trivia): self.audio: Audio = self.bot.get_cog("Audio") if self.audio is None: - await ctx.send("Audio is not loaded. Load it and try again") + await ctx.maybe_send_embed("Audio is not loaded. Load it and try again") return categories = [c.lower() for c in categories] session = self._get_trivia_session(ctx.channel) if session is not None: - await ctx.send("There is already an ongoing trivia session in this channel.") + await ctx.maybe_send_embed("There is already an ongoing trivia session in this channel.") return status = await self.audio.config.status() notify = await self.audio.config.guild(ctx.guild).notify() if status: - await ctx.send( + await ctx.maybe_send_embed( f"It is recommended to disable audio status with `{ctx.prefix}audioset status`" ) if notify: - await ctx.send( + await ctx.maybe_send_embed( f"It is recommended to disable audio notify with `{ctx.prefix}audioset notify`" ) @@ -110,12 +110,12 @@ class AudioTrivia(Trivia): if not ctx.author.voice.channel.permissions_for( ctx.me ).connect or self.audio.is_vc_full(ctx.author.voice.channel): - return await ctx.send("I don't have permission to connect to your channel.") + return await ctx.maybe_send_embed("I don't have permission to connect to your channel.") await lavalink.connect(ctx.author.voice.channel) lavaplayer = lavalink.get_player(ctx.guild.id) lavaplayer.store("connect", datetime.datetime.utcnow()) except AttributeError: - return await ctx.send("Connect to a voice channel first.") + return await ctx.maybe_send_embed("Connect to a voice channel first.") lavaplayer = lavalink.get_player(ctx.guild.id) lavaplayer.store("channel", ctx.channel.id) # What's this for? I dunno @@ -123,7 +123,7 @@ class AudioTrivia(Trivia): await self.audio.set_player_settings(ctx) if not ctx.author.voice or ctx.author.voice.channel != lavaplayer.channel: - return await ctx.send( + return await ctx.maybe_send_embed( "You must be in the voice channel to use the audiotrivia command." ) @@ -135,13 +135,13 @@ class AudioTrivia(Trivia): try: dict_ = self.get_audio_list(category) except FileNotFoundError: - await ctx.send( + await ctx.maybe_send_embed( "Invalid category `{0}`. See `{1}audiotrivia list`" " for a list of trivia categories." "".format(category, ctx.prefix) ) except InvalidListError: - await ctx.send( + await ctx.maybe_send_embed( "There was an error parsing the trivia list for" " the `{}` category. It may be formatted" " incorrectly.".format(category) @@ -152,7 +152,7 @@ class AudioTrivia(Trivia): continue return if not trivia_dict: - await ctx.send( + await ctx.maybe_send_embed( "The trivia list was parsed successfully, however it appears to be empty!" ) return From f05a8bf4f60f0f2fcb7f9188c3514d080a3f385b Mon Sep 17 00:00:00 2001 From: bobloy Date: Wed, 23 Sep 2020 12:07:20 -0400 Subject: [PATCH 07/22] *some* games fixed --- audiotrivia/data/lists/games.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/audiotrivia/data/lists/games.yaml b/audiotrivia/data/lists/games.yaml index c3a9078..4de795a 100644 --- a/audiotrivia/data/lists/games.yaml +++ b/audiotrivia/data/lists/games.yaml @@ -1,13 +1,13 @@ AUTHOR: Plab -https://www.youtube.com/watch?v=--bWm9hhoZo: +https://www.youtube.com/watch?v=f9O2Rjn1azc: - Transistor -https://www.youtube.com/watch?v=-4nCbgayZNE: +https://www.youtube.com/watch?v=PgUhYFkVdSY: - Dark Cloud 2 - Dark Cloud II -https://www.youtube.com/watch?v=-64NlME4lJU: +https://www.youtube.com/watch?v=1T1RZttyMwU: - Mega Man 7 - Mega Man VII -https://www.youtube.com/watch?v=-AesqnudNuw: +https://www.youtube.com/watch?v=AdDbbzuq1vY: - Mega Man 9 - Mega Man IX https://www.youtube.com/watch?v=-BmGDtP2t7M: From 608f4259658aaa1d46d0bbb8df939c280bbcd460 Mon Sep 17 00:00:00 2001 From: bobloy Date: Wed, 23 Sep 2020 12:15:53 -0400 Subject: [PATCH 08/22] Fix very long lists --- fifo/fifo.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/fifo/fifo.py b/fifo/fifo.py index e84e342..91c9190 100644 --- a/fifo/fifo.py +++ b/fifo/fifo.py @@ -10,6 +10,7 @@ from apscheduler.schedulers.base import STATE_PAUSED, STATE_RUNNING from redbot.core import Config, checks, commands from redbot.core.bot import Red from redbot.core.commands import TimedeltaConverter +from redbot.core.utils.chat_formatting import pagify from .datetime_cron_converters import CronConverter, DatetimeConverter from .task import Task @@ -306,7 +307,11 @@ class FIFO(commands.Cog): out += f"{task_name}: {task_data}\n" if out: - await ctx.maybe_send_embed(out) + if len(out) > 2000: + for page in pagify(out): + await ctx.maybe_send_embed(page) + else: + await ctx.maybe_send_embed(out) else: await ctx.maybe_send_embed("No tasks to list") From d13331d52d3f18c3098e500057b9d35519a94fcc Mon Sep 17 00:00:00 2001 From: bobloy Date: Wed, 23 Sep 2020 20:26:20 -0400 Subject: [PATCH 09/22] black --- planttycoon/planttycoon.py | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/planttycoon/planttycoon.py b/planttycoon/planttycoon.py index 61e5e06..665fc9a 100644 --- a/planttycoon/planttycoon.py +++ b/planttycoon/planttycoon.py @@ -360,7 +360,9 @@ class PlantTycoon(commands.Cog): ``{0}prune``: Prune your plant.\n""" em = discord.Embed( - title=title, description=description.format(prefix), color=discord.Color.green(), + title=title, + description=description.format(prefix), + color=discord.Color.green(), ) em.set_thumbnail(url="https://image.prntscr.com/image/AW7GuFIBSeyEgkR2W3SeiQ.png") em.set_footer( @@ -525,7 +527,8 @@ class PlantTycoon(commands.Cog): if t: em = discord.Embed( - title="Plant statistics of {}".format(plant["name"]), color=discord.Color.green(), + title="Plant statistics of {}".format(plant["name"]), + color=discord.Color.green(), ) em.set_thumbnail(url=plant["image"]) em.add_field(name="**Name**", value=plant["name"]) @@ -583,7 +586,8 @@ class PlantTycoon(commands.Cog): author = ctx.author if product is None: em = discord.Embed( - title="All gardening supplies that you can buy:", color=discord.Color.green(), + title="All gardening supplies that you can buy:", + color=discord.Color.green(), ) for pd in self.products: em.add_field( @@ -616,8 +620,11 @@ class PlantTycoon(commands.Cog): await gardener.save_gardener() message = "You bought {}.".format(product.lower()) else: - message = "You don't have enough Thneeds. You have {}, but need {}.".format( - gardener.points, self.products[product.lower()]["cost"] * amount, + message = ( + "You don't have enough Thneeds. You have {}, but need {}.".format( + gardener.points, + self.products[product.lower()]["cost"] * amount, + ) ) else: message = "I don't have this product." From 8531ff5f91203862cbba0bf959bc887cfc84a17a Mon Sep 17 00:00:00 2001 From: bobloy Date: Thu, 24 Sep 2020 10:46:46 -0400 Subject: [PATCH 10/22] Timezone support and Aik Timezone cog integration --- fifo/datetime_cron_converters.py | 4 +- fifo/fifo.py | 33 ++- fifo/task.py | 49 ++++- fifo/timezones.py | 359 ++++++++++++++++--------------- 4 files changed, 252 insertions(+), 193 deletions(-) diff --git a/fifo/datetime_cron_converters.py b/fifo/datetime_cron_converters.py index b7f3dc4..0f03eff 100644 --- a/fifo/datetime_cron_converters.py +++ b/fifo/datetime_cron_converters.py @@ -1,6 +1,7 @@ from datetime import datetime, tzinfo from typing import TYPE_CHECKING +from pytz import timezone from apscheduler.triggers.cron import CronTrigger from dateutil import parser, tz from discord.ext.commands import BadArgument, Converter @@ -11,13 +12,14 @@ if TYPE_CHECKING: DatetimeConverter = datetime CronConverter = str else: + class TimezoneConverter(Converter): async def convert(self, ctx, argument) -> tzinfo: tzinfos = assemble_timezones() if argument.upper() in tzinfos: return tzinfos[argument.upper()] - timez = tz.gettz(argument) + timez = timezone(argument) if timez is not None: return timez diff --git a/fifo/fifo.py b/fifo/fifo.py index 30346d7..acd01ac 100644 --- a/fifo/fifo.py +++ b/fifo/fifo.py @@ -1,5 +1,5 @@ import logging -from datetime import datetime, timedelta +from datetime import datetime, timedelta, tzinfo from typing import Optional, Union import discord @@ -58,6 +58,8 @@ class FIFO(commands.Cog): self.scheduler = None self.jobstore = None + self.tz_cog = None + async def red_delete_data_for_user(self, **kwargs): """Nothing to delete""" return @@ -132,6 +134,24 @@ class FIFO(commands.Cog): async def _remove_job(self, task: Task): return self.scheduler.remove_job(job_id=_assemble_job_id(task.name, task.guild_id)) + async def _get_tz(self, user: Union[discord.User, discord.Member]) -> Union[None, tzinfo]: + if self.tz_cog is None: + self.tz_cog = self.bot.get_cog("Timezone") + if self.tz_cog is None: + self.tz_cog = False # only try once to get the timezone cog + + if not self.tz_cog: + return None + try: + usertime = await self.tz_cog.config.user(user).usertime() + except AttributeError: + return None + + if usertime: + return await TimezoneConverter().convert(None, usertime) + else: + return None + @checks.is_owner() @commands.guild_only() @commands.command() @@ -140,7 +160,7 @@ class FIFO(commands.Cog): self.scheduler.remove_all_jobs() await self.config.guild(ctx.guild).tasks.clear() await self.config.jobs.clear() - await self.config.jobs_index.clear() + # await self.config.jobs_index.clear() await ctx.tick() @checks.is_owner() # Will be reduced when I figure out permissions later @@ -411,7 +431,7 @@ class FIFO(commands.Cog): job: Job = await self._process_task(task) delta_from_now: timedelta = job.next_run_time - datetime.now(job.next_run_time.tzinfo) await ctx.maybe_send_embed( - f"Task `{task_name}` added interval of {interval_str} to its scheduled runtimes\n" + f"Task `{task_name}` added interval of {interval_str} to its scheduled runtimes\n\n" f"Next run time: {job.next_run_time} ({delta_from_now.total_seconds()} seconds)" ) @@ -432,7 +452,9 @@ class FIFO(commands.Cog): ) return - result = await task.add_trigger("date", datetime_str) + maybe_tz = await self._get_tz(ctx.author) + + result = await task.add_trigger("date", datetime_str, maybe_tz) if not result: await ctx.maybe_send_embed( "Failed to add a date trigger to this task, see console for logs" @@ -470,6 +492,9 @@ class FIFO(commands.Cog): ) return + if optional_tz is None: + optional_tz = await self._get_tz(ctx.author) # might still be None + result = await task.add_trigger("cron", cron_str, optional_tz) if not result: await ctx.maybe_send_embed( diff --git a/fifo/task.py b/fifo/task.py index 764ab8f..f7dc45a 100644 --- a/fifo/task.py +++ b/fifo/task.py @@ -9,6 +9,7 @@ from apscheduler.triggers.cron import CronTrigger from apscheduler.triggers.date import DateTrigger from apscheduler.triggers.interval import IntervalTrigger from discord.utils import time_snowflake +from pytz import timezone from redbot.core import Config, commands from redbot.core.bot import Red @@ -25,10 +26,10 @@ def get_trigger(data): return IntervalTrigger(days=parsed_time.days, seconds=parsed_time.seconds) if data["type"] == "date": - return DateTrigger(data["time_data"]) + return DateTrigger(data["time_data"], timezone=data["tzinfo"]) if data["type"] == "cron": - return CronTrigger.from_crontab(data["time_data"]) + return CronTrigger.from_crontab(data["time_data"], timezone=data["tzinfo"]) return False @@ -70,6 +71,7 @@ class Task: default_trigger = { "type": "", "time_data": None, # Used for Interval and Date Triggers + "tzinfo": None, } def __init__( @@ -99,7 +101,13 @@ class Task: if t["type"] == "date": # Convert into datetime dt: datetime = t["time_data"] - triggers.append({"type": t["type"], "time_data": dt.isoformat()}) + triggers.append( + { + "type": t["type"], + "time_data": dt.isoformat(), + "tzinfo": getattr(t["tzinfo"], "zone", None), + } + ) # triggers.append( # { # "type": t["type"], @@ -117,9 +125,18 @@ class Task: continue if t["type"] == "cron": - triggers.append(t) # already a string, nothing to do - + if t["tzinfo"] is None: + triggers.append(t) # already a string, nothing to do + else: + triggers.append( + { + "type": t["type"], + "time_data": t["time_data"], + "tzinfo": getattr(t["tzinfo"], "zone", None), + } + ) continue + raise NotImplemented return triggers @@ -128,18 +145,27 @@ class Task: if not self.data or not self.data.get("triggers", None): return - for n, t in enumerate(self.data["triggers"]): + for t in self.data["triggers"]: + # Backwards compatibility + if "tzinfo" not in t: + t["tzinfo"] = None + + # First decode timezone if there is one + if t["tzinfo"] is not None: + t["tzinfo"] = timezone(t["tzinfo"]) + if t["type"] == "interval": # Convert into timedelta - self.data["triggers"][n]["time_data"] = timedelta(**t["time_data"]) + t["time_data"] = timedelta(**t["time_data"]) continue if t["type"] == "date": # Convert into datetime # self.data["triggers"][n]["time_data"] = datetime(**t["time_data"]) - self.data["triggers"][n]["time_data"] = datetime.fromisoformat(t["time_data"]) + t["time_data"] = datetime.fromisoformat(t["time_data"]) continue if t["type"] == "cron": continue # already a string + raise NotImplemented # async def load_from_data(self, data: Dict): @@ -304,7 +330,12 @@ class Task: self, param, parsed_time: Union[timedelta, datetime, str], timezone=None ): # TODO: Save timezone separately for cron and date triggers - trigger_data = {"type": param, "time_data": parsed_time} + trigger_data = self.default_trigger.copy() + trigger_data["type"] = param + trigger_data["time_data"] = parsed_time + if timezone is not None: + trigger_data["tzinfo"] = timezone + if not get_trigger(trigger_data): return False diff --git a/fifo/timezones.py b/fifo/timezones.py index 5a322a4..5fdbdba 100644 --- a/fifo/timezones.py +++ b/fifo/timezones.py @@ -4,7 +4,8 @@ Timezone information for the dateutil parser All credit to https://github.com/prefrontal/dateutil-parser-timezones """ -from dateutil.tz import gettz +# from dateutil.tz import gettz +from pytz import timezone def assemble_timezones(): @@ -14,182 +15,182 @@ def assemble_timezones(): """ timezones = {} - timezones['ACDT'] = gettz('Australia/Darwin') # Australian Central Daylight Savings Time (UTC+10:30) - timezones['ACST'] = gettz('Australia/Darwin') # Australian Central Standard Time (UTC+09:30) - timezones['ACT'] = gettz('Brazil/Acre') # Acre Time (UTC−05) - timezones['ADT'] = gettz('America/Halifax') # Atlantic Daylight Time (UTC−03) - timezones['AEDT'] = gettz('Australia/Sydney') # Australian Eastern Daylight Savings Time (UTC+11) - timezones['AEST'] = gettz('Australia/Sydney') # Australian Eastern Standard Time (UTC+10) - timezones['AFT'] = gettz('Asia/Kabul') # Afghanistan Time (UTC+04:30) - timezones['AKDT'] = gettz('America/Juneau') # Alaska Daylight Time (UTC−08) - timezones['AKST'] = gettz('America/Juneau') # Alaska Standard Time (UTC−09) - timezones['AMST'] = gettz('America/Manaus') # Amazon Summer Time (Brazil)[1] (UTC−03) - timezones['AMT'] = gettz('America/Manaus') # Amazon Time (Brazil)[2] (UTC−04) - timezones['ART'] = gettz('America/Cordoba') # Argentina Time (UTC−03) - timezones['AST'] = gettz('Asia/Riyadh') # Arabia Standard Time (UTC+03) - timezones['AWST'] = gettz('Australia/Perth') # Australian Western Standard Time (UTC+08) - timezones['AZOST'] = gettz('Atlantic/Azores') # Azores Summer Time (UTC±00) - timezones['AZOT'] = gettz('Atlantic/Azores') # Azores Standard Time (UTC−01) - timezones['AZT'] = gettz('Asia/Baku') # Azerbaijan Time (UTC+04) - timezones['BDT'] = gettz('Asia/Brunei') # Brunei Time (UTC+08) - timezones['BIOT'] = gettz('Etc/GMT+6') # British Indian Ocean Time (UTC+06) - timezones['BIT'] = gettz('Pacific/Funafuti') # Baker Island Time (UTC−12) - timezones['BOT'] = gettz('America/La_Paz') # Bolivia Time (UTC−04) - timezones['BRST'] = gettz('America/Sao_Paulo') # Brasilia Summer Time (UTC−02) - timezones['BRT'] = gettz('America/Sao_Paulo') # Brasilia Time (UTC−03) - timezones['BST'] = gettz('Asia/Dhaka') # Bangladesh Standard Time (UTC+06) - timezones['BTT'] = gettz('Asia/Thimphu') # Bhutan Time (UTC+06) - timezones['CAT'] = gettz('Africa/Harare') # Central Africa Time (UTC+02) - timezones['CCT'] = gettz('Indian/Cocos') # Cocos Islands Time (UTC+06:30) - timezones['CDT'] = gettz('America/Chicago') # Central Daylight Time (North America) (UTC−05) - timezones['CEST'] = gettz('Europe/Berlin') # Central European Summer Time (Cf. HAEC) (UTC+02) - timezones['CET'] = gettz('Europe/Berlin') # Central European Time (UTC+01) - timezones['CHADT'] = gettz('Pacific/Chatham') # Chatham Daylight Time (UTC+13:45) - timezones['CHAST'] = gettz('Pacific/Chatham') # Chatham Standard Time (UTC+12:45) - timezones['CHOST'] = gettz('Asia/Choibalsan') # Choibalsan Summer Time (UTC+09) - timezones['CHOT'] = gettz('Asia/Choibalsan') # Choibalsan Standard Time (UTC+08) - timezones['CHST'] = gettz('Pacific/Guam') # Chamorro Standard Time (UTC+10) - timezones['CHUT'] = gettz('Pacific/Chuuk') # Chuuk Time (UTC+10) - timezones['CIST'] = gettz('Etc/GMT-8') # Clipperton Island Standard Time (UTC−08) - timezones['CIT'] = gettz('Asia/Makassar') # Central Indonesia Time (UTC+08) - timezones['CKT'] = gettz('Pacific/Rarotonga') # Cook Island Time (UTC−10) - timezones['CLST'] = gettz('America/Santiago') # Chile Summer Time (UTC−03) - timezones['CLT'] = gettz('America/Santiago') # Chile Standard Time (UTC−04) - timezones['COST'] = gettz('America/Bogota') # Colombia Summer Time (UTC−04) - timezones['COT'] = gettz('America/Bogota') # Colombia Time (UTC−05) - timezones['CST'] = gettz('America/Chicago') # Central Standard Time (North America) (UTC−06) - timezones['CT'] = gettz('Asia/Chongqing') # China time (UTC+08) - timezones['CVT'] = gettz('Atlantic/Cape_Verde') # Cape Verde Time (UTC−01) - timezones['CXT'] = gettz('Indian/Christmas') # Christmas Island Time (UTC+07) - timezones['DAVT'] = gettz('Antarctica/Davis') # Davis Time (UTC+07) - timezones['DDUT'] = gettz('Antarctica/DumontDUrville') # Dumont d'Urville Time (UTC+10) - timezones['DFT'] = gettz('Europe/Berlin') # AIX equivalent of Central European Time (UTC+01) - timezones['EASST'] = gettz('Chile/EasterIsland') # Easter Island Summer Time (UTC−05) - timezones['EAST'] = gettz('Chile/EasterIsland') # Easter Island Standard Time (UTC−06) - timezones['EAT'] = gettz('Africa/Mogadishu') # East Africa Time (UTC+03) - timezones['ECT'] = gettz('America/Guayaquil') # Ecuador Time (UTC−05) - timezones['EDT'] = gettz('America/New_York') # Eastern Daylight Time (North America) (UTC−04) - timezones['EEST'] = gettz('Europe/Bucharest') # Eastern European Summer Time (UTC+03) - timezones['EET'] = gettz('Europe/Bucharest') # Eastern European Time (UTC+02) - timezones['EGST'] = gettz('America/Scoresbysund') # Eastern Greenland Summer Time (UTC±00) - timezones['EGT'] = gettz('America/Scoresbysund') # Eastern Greenland Time (UTC−01) - timezones['EIT'] = gettz('Asia/Jayapura') # Eastern Indonesian Time (UTC+09) - timezones['EST'] = gettz('America/New_York') # Eastern Standard Time (North America) (UTC−05) - timezones['FET'] = gettz('Europe/Minsk') # Further-eastern European Time (UTC+03) - timezones['FJT'] = gettz('Pacific/Fiji') # Fiji Time (UTC+12) - timezones['FKST'] = gettz('Atlantic/Stanley') # Falkland Islands Summer Time (UTC−03) - timezones['FKT'] = gettz('Atlantic/Stanley') # Falkland Islands Time (UTC−04) - timezones['FNT'] = gettz('Brazil/DeNoronha') # Fernando de Noronha Time (UTC−02) - timezones['GALT'] = gettz('Pacific/Galapagos') # Galapagos Time (UTC−06) - timezones['GAMT'] = gettz('Pacific/Gambier') # Gambier Islands (UTC−09) - timezones['GET'] = gettz('Asia/Tbilisi') # Georgia Standard Time (UTC+04) - timezones['GFT'] = gettz('America/Cayenne') # French Guiana Time (UTC−03) - timezones['GILT'] = gettz('Pacific/Tarawa') # Gilbert Island Time (UTC+12) - timezones['GIT'] = gettz('Pacific/Gambier') # Gambier Island Time (UTC−09) - timezones['GMT'] = gettz('GMT') # Greenwich Mean Time (UTC±00) - timezones['GST'] = gettz('Asia/Muscat') # Gulf Standard Time (UTC+04) - timezones['GYT'] = gettz('America/Guyana') # Guyana Time (UTC−04) - timezones['HADT'] = gettz('Pacific/Honolulu') # Hawaii-Aleutian Daylight Time (UTC−09) - timezones['HAEC'] = gettz('Europe/Paris') # Heure Avancée d'Europe Centrale (CEST) (UTC+02) - timezones['HAST'] = gettz('Pacific/Honolulu') # Hawaii-Aleutian Standard Time (UTC−10) - timezones['HKT'] = gettz('Asia/Hong_Kong') # Hong Kong Time (UTC+08) - timezones['HMT'] = gettz('Indian/Kerguelen') # Heard and McDonald Islands Time (UTC+05) - timezones['HOVST'] = gettz('Asia/Hovd') # Khovd Summer Time (UTC+08) - timezones['HOVT'] = gettz('Asia/Hovd') # Khovd Standard Time (UTC+07) - timezones['ICT'] = gettz('Asia/Ho_Chi_Minh') # Indochina Time (UTC+07) - timezones['IDT'] = gettz('Asia/Jerusalem') # Israel Daylight Time (UTC+03) - timezones['IOT'] = gettz('Etc/GMT+3') # Indian Ocean Time (UTC+03) - timezones['IRDT'] = gettz('Asia/Tehran') # Iran Daylight Time (UTC+04:30) - timezones['IRKT'] = gettz('Asia/Irkutsk') # Irkutsk Time (UTC+08) - timezones['IRST'] = gettz('Asia/Tehran') # Iran Standard Time (UTC+03:30) - timezones['IST'] = gettz('Asia/Kolkata') # Indian Standard Time (UTC+05:30) - timezones['JST'] = gettz('Asia/Tokyo') # Japan Standard Time (UTC+09) - timezones['KGT'] = gettz('Asia/Bishkek') # Kyrgyzstan time (UTC+06) - timezones['KOST'] = gettz('Pacific/Kosrae') # Kosrae Time (UTC+11) - timezones['KRAT'] = gettz('Asia/Krasnoyarsk') # Krasnoyarsk Time (UTC+07) - timezones['KST'] = gettz('Asia/Seoul') # Korea Standard Time (UTC+09) - timezones['LHST'] = gettz('Australia/Lord_Howe') # Lord Howe Standard Time (UTC+10:30) - timezones['LINT'] = gettz('Pacific/Kiritimati') # Line Islands Time (UTC+14) - timezones['MAGT'] = gettz('Asia/Magadan') # Magadan Time (UTC+12) - timezones['MART'] = gettz('Pacific/Marquesas') # Marquesas Islands Time (UTC−09:30) - timezones['MAWT'] = gettz('Antarctica/Mawson') # Mawson Station Time (UTC+05) - timezones['MDT'] = gettz('America/Denver') # Mountain Daylight Time (North America) (UTC−06) - timezones['MEST'] = gettz('Europe/Paris') # Middle European Summer Time Same zone as CEST (UTC+02) - timezones['MET'] = gettz('Europe/Berlin') # Middle European Time Same zone as CET (UTC+01) - timezones['MHT'] = gettz('Pacific/Kwajalein') # Marshall Islands (UTC+12) - timezones['MIST'] = gettz('Antarctica/Macquarie') # Macquarie Island Station Time (UTC+11) - timezones['MIT'] = gettz('Pacific/Marquesas') # Marquesas Islands Time (UTC−09:30) - timezones['MMT'] = gettz('Asia/Rangoon') # Myanmar Standard Time (UTC+06:30) - timezones['MSK'] = gettz('Europe/Moscow') # Moscow Time (UTC+03) - timezones['MST'] = gettz('America/Denver') # Mountain Standard Time (North America) (UTC−07) - timezones['MUT'] = gettz('Indian/Mauritius') # Mauritius Time (UTC+04) - timezones['MVT'] = gettz('Indian/Maldives') # Maldives Time (UTC+05) - timezones['MYT'] = gettz('Asia/Kuching') # Malaysia Time (UTC+08) - timezones['NCT'] = gettz('Pacific/Noumea') # New Caledonia Time (UTC+11) - timezones['NDT'] = gettz('Canada/Newfoundland') # Newfoundland Daylight Time (UTC−02:30) - timezones['NFT'] = gettz('Pacific/Norfolk') # Norfolk Time (UTC+11) - timezones['NPT'] = gettz('Asia/Kathmandu') # Nepal Time (UTC+05:45) - timezones['NST'] = gettz('Canada/Newfoundland') # Newfoundland Standard Time (UTC−03:30) - timezones['NT'] = gettz('Canada/Newfoundland') # Newfoundland Time (UTC−03:30) - timezones['NUT'] = gettz('Pacific/Niue') # Niue Time (UTC−11) - timezones['NZDT'] = gettz('Pacific/Auckland') # New Zealand Daylight Time (UTC+13) - timezones['NZST'] = gettz('Pacific/Auckland') # New Zealand Standard Time (UTC+12) - timezones['OMST'] = gettz('Asia/Omsk') # Omsk Time (UTC+06) - timezones['ORAT'] = gettz('Asia/Oral') # Oral Time (UTC+05) - timezones['PDT'] = gettz('America/Los_Angeles') # Pacific Daylight Time (North America) (UTC−07) - timezones['PET'] = gettz('America/Lima') # Peru Time (UTC−05) - timezones['PETT'] = gettz('Asia/Kamchatka') # Kamchatka Time (UTC+12) - timezones['PGT'] = gettz('Pacific/Port_Moresby') # Papua New Guinea Time (UTC+10) - timezones['PHOT'] = gettz('Pacific/Enderbury') # Phoenix Island Time (UTC+13) - timezones['PKT'] = gettz('Asia/Karachi') # Pakistan Standard Time (UTC+05) - timezones['PMDT'] = gettz('America/Miquelon') # Saint Pierre and Miquelon Daylight time (UTC−02) - timezones['PMST'] = gettz('America/Miquelon') # Saint Pierre and Miquelon Standard Time (UTC−03) - timezones['PONT'] = gettz('Pacific/Pohnpei') # Pohnpei Standard Time (UTC+11) - timezones['PST'] = gettz('America/Los_Angeles') # Pacific Standard Time (North America) (UTC−08) - timezones['PYST'] = gettz('America/Asuncion') # Paraguay Summer Time (South America)[7] (UTC−03) - timezones['PYT'] = gettz('America/Asuncion') # Paraguay Time (South America)[8] (UTC−04) - timezones['RET'] = gettz('Indian/Reunion') # Réunion Time (UTC+04) - timezones['ROTT'] = gettz('Antarctica/Rothera') # Rothera Research Station Time (UTC−03) - timezones['SAKT'] = gettz('Asia/Vladivostok') # Sakhalin Island time (UTC+11) - timezones['SAMT'] = gettz('Europe/Samara') # Samara Time (UTC+04) - timezones['SAST'] = gettz('Africa/Johannesburg') # South African Standard Time (UTC+02) - timezones['SBT'] = gettz('Pacific/Guadalcanal') # Solomon Islands Time (UTC+11) - timezones['SCT'] = gettz('Indian/Mahe') # Seychelles Time (UTC+04) - timezones['SGT'] = gettz('Asia/Singapore') # Singapore Time (UTC+08) - timezones['SLST'] = gettz('Asia/Colombo') # Sri Lanka Standard Time (UTC+05:30) - timezones['SRET'] = gettz('Asia/Srednekolymsk') # Srednekolymsk Time (UTC+11) - timezones['SRT'] = gettz('America/Paramaribo') # Suriname Time (UTC−03) - timezones['SST'] = gettz('Asia/Singapore') # Singapore Standard Time (UTC+08) - timezones['SYOT'] = gettz('Antarctica/Syowa') # Showa Station Time (UTC+03) - timezones['TAHT'] = gettz('Pacific/Tahiti') # Tahiti Time (UTC−10) - timezones['TFT'] = gettz('Indian/Kerguelen') # Indian/Kerguelen (UTC+05) - timezones['THA'] = gettz('Asia/Bangkok') # Thailand Standard Time (UTC+07) - timezones['TJT'] = gettz('Asia/Dushanbe') # Tajikistan Time (UTC+05) - timezones['TKT'] = gettz('Pacific/Fakaofo') # Tokelau Time (UTC+13) - timezones['TLT'] = gettz('Asia/Dili') # Timor Leste Time (UTC+09) - timezones['TMT'] = gettz('Asia/Ashgabat') # Turkmenistan Time (UTC+05) - timezones['TOT'] = gettz('Pacific/Tongatapu') # Tonga Time (UTC+13) - timezones['TVT'] = gettz('Pacific/Funafuti') # Tuvalu Time (UTC+12) - timezones['ULAST'] = gettz('Asia/Ulan_Bator') # Ulaanbaatar Summer Time (UTC+09) - timezones['ULAT'] = gettz('Asia/Ulan_Bator') # Ulaanbaatar Standard Time (UTC+08) - timezones['USZ1'] = gettz('Europe/Kaliningrad') # Kaliningrad Time (UTC+02) - timezones['UTC'] = gettz('UTC') # Coordinated Universal Time (UTC±00) - timezones['UYST'] = gettz('America/Montevideo') # Uruguay Summer Time (UTC−02) - timezones['UYT'] = gettz('America/Montevideo') # Uruguay Standard Time (UTC−03) - timezones['UZT'] = gettz('Asia/Tashkent') # Uzbekistan Time (UTC+05) - timezones['VET'] = gettz('America/Caracas') # Venezuelan Standard Time (UTC−04) - timezones['VLAT'] = gettz('Asia/Vladivostok') # Vladivostok Time (UTC+10) - timezones['VOLT'] = gettz('Europe/Volgograd') # Volgograd Time (UTC+04) - timezones['VOST'] = gettz('Antarctica/Vostok') # Vostok Station Time (UTC+06) - timezones['VUT'] = gettz('Pacific/Efate') # Vanuatu Time (UTC+11) - timezones['WAKT'] = gettz('Pacific/Wake') # Wake Island Time (UTC+12) - timezones['WAST'] = gettz('Africa/Lagos') # West Africa Summer Time (UTC+02) - timezones['WAT'] = gettz('Africa/Lagos') # West Africa Time (UTC+01) - timezones['WEST'] = gettz('Europe/London') # Western European Summer Time (UTC+01) - timezones['WET'] = gettz('Europe/London') # Western European Time (UTC±00) - timezones['WIT'] = gettz('Asia/Jakarta') # Western Indonesian Time (UTC+07) - timezones['WST'] = gettz('Australia/Perth') # Western Standard Time (UTC+08) - timezones['YAKT'] = gettz('Asia/Yakutsk') # Yakutsk Time (UTC+09) - timezones['YEKT'] = gettz('Asia/Yekaterinburg') # Yekaterinburg Time (UTC+05) + timezones['ACDT'] = timezone('Australia/Darwin') # Australian Central Daylight Savings Time (UTC+10:30) + timezones['ACST'] = timezone('Australia/Darwin') # Australian Central Standard Time (UTC+09:30) + timezones['ACT'] = timezone('Brazil/Acre') # Acre Time (UTC−05) + timezones['ADT'] = timezone('America/Halifax') # Atlantic Daylight Time (UTC−03) + timezones['AEDT'] = timezone('Australia/Sydney') # Australian Eastern Daylight Savings Time (UTC+11) + timezones['AEST'] = timezone('Australia/Sydney') # Australian Eastern Standard Time (UTC+10) + timezones['AFT'] = timezone('Asia/Kabul') # Afghanistan Time (UTC+04:30) + timezones['AKDT'] = timezone('America/Juneau') # Alaska Daylight Time (UTC−08) + timezones['AKST'] = timezone('America/Juneau') # Alaska Standard Time (UTC−09) + timezones['AMST'] = timezone('America/Manaus') # Amazon Summer Time (Brazil)[1] (UTC−03) + timezones['AMT'] = timezone('America/Manaus') # Amazon Time (Brazil)[2] (UTC−04) + timezones['ART'] = timezone('America/Cordoba') # Argentina Time (UTC−03) + timezones['AST'] = timezone('Asia/Riyadh') # Arabia Standard Time (UTC+03) + timezones['AWST'] = timezone('Australia/Perth') # Australian Western Standard Time (UTC+08) + timezones['AZOST'] = timezone('Atlantic/Azores') # Azores Summer Time (UTC±00) + timezones['AZOT'] = timezone('Atlantic/Azores') # Azores Standard Time (UTC−01) + timezones['AZT'] = timezone('Asia/Baku') # Azerbaijan Time (UTC+04) + timezones['BDT'] = timezone('Asia/Brunei') # Brunei Time (UTC+08) + timezones['BIOT'] = timezone('Etc/GMT+6') # British Indian Ocean Time (UTC+06) + timezones['BIT'] = timezone('Pacific/Funafuti') # Baker Island Time (UTC−12) + timezones['BOT'] = timezone('America/La_Paz') # Bolivia Time (UTC−04) + timezones['BRST'] = timezone('America/Sao_Paulo') # Brasilia Summer Time (UTC−02) + timezones['BRT'] = timezone('America/Sao_Paulo') # Brasilia Time (UTC−03) + timezones['BST'] = timezone('Asia/Dhaka') # Bangladesh Standard Time (UTC+06) + timezones['BTT'] = timezone('Asia/Thimphu') # Bhutan Time (UTC+06) + timezones['CAT'] = timezone('Africa/Harare') # Central Africa Time (UTC+02) + timezones['CCT'] = timezone('Indian/Cocos') # Cocos Islands Time (UTC+06:30) + timezones['CDT'] = timezone('America/Chicago') # Central Daylight Time (North America) (UTC−05) + timezones['CEST'] = timezone('Europe/Berlin') # Central European Summer Time (Cf. HAEC) (UTC+02) + timezones['CET'] = timezone('Europe/Berlin') # Central European Time (UTC+01) + timezones['CHADT'] = timezone('Pacific/Chatham') # Chatham Daylight Time (UTC+13:45) + timezones['CHAST'] = timezone('Pacific/Chatham') # Chatham Standard Time (UTC+12:45) + timezones['CHOST'] = timezone('Asia/Choibalsan') # Choibalsan Summer Time (UTC+09) + timezones['CHOT'] = timezone('Asia/Choibalsan') # Choibalsan Standard Time (UTC+08) + timezones['CHST'] = timezone('Pacific/Guam') # Chamorro Standard Time (UTC+10) + timezones['CHUT'] = timezone('Pacific/Chuuk') # Chuuk Time (UTC+10) + timezones['CIST'] = timezone('Etc/GMT-8') # Clipperton Island Standard Time (UTC−08) + timezones['CIT'] = timezone('Asia/Makassar') # Central Indonesia Time (UTC+08) + timezones['CKT'] = timezone('Pacific/Rarotonga') # Cook Island Time (UTC−10) + timezones['CLST'] = timezone('America/Santiago') # Chile Summer Time (UTC−03) + timezones['CLT'] = timezone('America/Santiago') # Chile Standard Time (UTC−04) + timezones['COST'] = timezone('America/Bogota') # Colombia Summer Time (UTC−04) + timezones['COT'] = timezone('America/Bogota') # Colombia Time (UTC−05) + timezones['CST'] = timezone('America/Chicago') # Central Standard Time (North America) (UTC−06) + timezones['CT'] = timezone('Asia/Chongqing') # China time (UTC+08) + timezones['CVT'] = timezone('Atlantic/Cape_Verde') # Cape Verde Time (UTC−01) + timezones['CXT'] = timezone('Indian/Christmas') # Christmas Island Time (UTC+07) + timezones['DAVT'] = timezone('Antarctica/Davis') # Davis Time (UTC+07) + timezones['DDUT'] = timezone('Antarctica/DumontDUrville') # Dumont d'Urville Time (UTC+10) + timezones['DFT'] = timezone('Europe/Berlin') # AIX equivalent of Central European Time (UTC+01) + timezones['EASST'] = timezone('Chile/EasterIsland') # Easter Island Summer Time (UTC−05) + timezones['EAST'] = timezone('Chile/EasterIsland') # Easter Island Standard Time (UTC−06) + timezones['EAT'] = timezone('Africa/Mogadishu') # East Africa Time (UTC+03) + timezones['ECT'] = timezone('America/Guayaquil') # Ecuador Time (UTC−05) + timezones['EDT'] = timezone('America/New_York') # Eastern Daylight Time (North America) (UTC−04) + timezones['EEST'] = timezone('Europe/Bucharest') # Eastern European Summer Time (UTC+03) + timezones['EET'] = timezone('Europe/Bucharest') # Eastern European Time (UTC+02) + timezones['EGST'] = timezone('America/Scoresbysund') # Eastern Greenland Summer Time (UTC±00) + timezones['EGT'] = timezone('America/Scoresbysund') # Eastern Greenland Time (UTC−01) + timezones['EIT'] = timezone('Asia/Jayapura') # Eastern Indonesian Time (UTC+09) + timezones['EST'] = timezone('America/New_York') # Eastern Standard Time (North America) (UTC−05) + timezones['FET'] = timezone('Europe/Minsk') # Further-eastern European Time (UTC+03) + timezones['FJT'] = timezone('Pacific/Fiji') # Fiji Time (UTC+12) + timezones['FKST'] = timezone('Atlantic/Stanley') # Falkland Islands Summer Time (UTC−03) + timezones['FKT'] = timezone('Atlantic/Stanley') # Falkland Islands Time (UTC−04) + timezones['FNT'] = timezone('Brazil/DeNoronha') # Fernando de Noronha Time (UTC−02) + timezones['GALT'] = timezone('Pacific/Galapagos') # Galapagos Time (UTC−06) + timezones['GAMT'] = timezone('Pacific/Gambier') # Gambier Islands (UTC−09) + timezones['GET'] = timezone('Asia/Tbilisi') # Georgia Standard Time (UTC+04) + timezones['GFT'] = timezone('America/Cayenne') # French Guiana Time (UTC−03) + timezones['GILT'] = timezone('Pacific/Tarawa') # Gilbert Island Time (UTC+12) + timezones['GIT'] = timezone('Pacific/Gambier') # Gambier Island Time (UTC−09) + timezones['GMT'] = timezone('GMT') # Greenwich Mean Time (UTC±00) + timezones['GST'] = timezone('Asia/Muscat') # Gulf Standard Time (UTC+04) + timezones['GYT'] = timezone('America/Guyana') # Guyana Time (UTC−04) + timezones['HADT'] = timezone('Pacific/Honolulu') # Hawaii-Aleutian Daylight Time (UTC−09) + timezones['HAEC'] = timezone('Europe/Paris') # Heure Avancée d'Europe Centrale (CEST) (UTC+02) + timezones['HAST'] = timezone('Pacific/Honolulu') # Hawaii-Aleutian Standard Time (UTC−10) + timezones['HKT'] = timezone('Asia/Hong_Kong') # Hong Kong Time (UTC+08) + timezones['HMT'] = timezone('Indian/Kerguelen') # Heard and McDonald Islands Time (UTC+05) + timezones['HOVST'] = timezone('Asia/Hovd') # Khovd Summer Time (UTC+08) + timezones['HOVT'] = timezone('Asia/Hovd') # Khovd Standard Time (UTC+07) + timezones['ICT'] = timezone('Asia/Ho_Chi_Minh') # Indochina Time (UTC+07) + timezones['IDT'] = timezone('Asia/Jerusalem') # Israel Daylight Time (UTC+03) + timezones['IOT'] = timezone('Etc/GMT+3') # Indian Ocean Time (UTC+03) + timezones['IRDT'] = timezone('Asia/Tehran') # Iran Daylight Time (UTC+04:30) + timezones['IRKT'] = timezone('Asia/Irkutsk') # Irkutsk Time (UTC+08) + timezones['IRST'] = timezone('Asia/Tehran') # Iran Standard Time (UTC+03:30) + timezones['IST'] = timezone('Asia/Kolkata') # Indian Standard Time (UTC+05:30) + timezones['JST'] = timezone('Asia/Tokyo') # Japan Standard Time (UTC+09) + timezones['KGT'] = timezone('Asia/Bishkek') # Kyrgyzstan time (UTC+06) + timezones['KOST'] = timezone('Pacific/Kosrae') # Kosrae Time (UTC+11) + timezones['KRAT'] = timezone('Asia/Krasnoyarsk') # Krasnoyarsk Time (UTC+07) + timezones['KST'] = timezone('Asia/Seoul') # Korea Standard Time (UTC+09) + timezones['LHST'] = timezone('Australia/Lord_Howe') # Lord Howe Standard Time (UTC+10:30) + timezones['LINT'] = timezone('Pacific/Kiritimati') # Line Islands Time (UTC+14) + timezones['MAGT'] = timezone('Asia/Magadan') # Magadan Time (UTC+12) + timezones['MART'] = timezone('Pacific/Marquesas') # Marquesas Islands Time (UTC−09:30) + timezones['MAWT'] = timezone('Antarctica/Mawson') # Mawson Station Time (UTC+05) + timezones['MDT'] = timezone('America/Denver') # Mountain Daylight Time (North America) (UTC−06) + timezones['MEST'] = timezone('Europe/Paris') # Middle European Summer Time Same zone as CEST (UTC+02) + timezones['MET'] = timezone('Europe/Berlin') # Middle European Time Same zone as CET (UTC+01) + timezones['MHT'] = timezone('Pacific/Kwajalein') # Marshall Islands (UTC+12) + timezones['MIST'] = timezone('Antarctica/Macquarie') # Macquarie Island Station Time (UTC+11) + timezones['MIT'] = timezone('Pacific/Marquesas') # Marquesas Islands Time (UTC−09:30) + timezones['MMT'] = timezone('Asia/Rangoon') # Myanmar Standard Time (UTC+06:30) + timezones['MSK'] = timezone('Europe/Moscow') # Moscow Time (UTC+03) + timezones['MST'] = timezone('America/Denver') # Mountain Standard Time (North America) (UTC−07) + timezones['MUT'] = timezone('Indian/Mauritius') # Mauritius Time (UTC+04) + timezones['MVT'] = timezone('Indian/Maldives') # Maldives Time (UTC+05) + timezones['MYT'] = timezone('Asia/Kuching') # Malaysia Time (UTC+08) + timezones['NCT'] = timezone('Pacific/Noumea') # New Caledonia Time (UTC+11) + timezones['NDT'] = timezone('Canada/Newfoundland') # Newfoundland Daylight Time (UTC−02:30) + timezones['NFT'] = timezone('Pacific/Norfolk') # Norfolk Time (UTC+11) + timezones['NPT'] = timezone('Asia/Kathmandu') # Nepal Time (UTC+05:45) + timezones['NST'] = timezone('Canada/Newfoundland') # Newfoundland Standard Time (UTC−03:30) + timezones['NT'] = timezone('Canada/Newfoundland') # Newfoundland Time (UTC−03:30) + timezones['NUT'] = timezone('Pacific/Niue') # Niue Time (UTC−11) + timezones['NZDT'] = timezone('Pacific/Auckland') # New Zealand Daylight Time (UTC+13) + timezones['NZST'] = timezone('Pacific/Auckland') # New Zealand Standard Time (UTC+12) + timezones['OMST'] = timezone('Asia/Omsk') # Omsk Time (UTC+06) + timezones['ORAT'] = timezone('Asia/Oral') # Oral Time (UTC+05) + timezones['PDT'] = timezone('America/Los_Angeles') # Pacific Daylight Time (North America) (UTC−07) + timezones['PET'] = timezone('America/Lima') # Peru Time (UTC−05) + timezones['PETT'] = timezone('Asia/Kamchatka') # Kamchatka Time (UTC+12) + timezones['PGT'] = timezone('Pacific/Port_Moresby') # Papua New Guinea Time (UTC+10) + timezones['PHOT'] = timezone('Pacific/Enderbury') # Phoenix Island Time (UTC+13) + timezones['PKT'] = timezone('Asia/Karachi') # Pakistan Standard Time (UTC+05) + timezones['PMDT'] = timezone('America/Miquelon') # Saint Pierre and Miquelon Daylight time (UTC−02) + timezones['PMST'] = timezone('America/Miquelon') # Saint Pierre and Miquelon Standard Time (UTC−03) + timezones['PONT'] = timezone('Pacific/Pohnpei') # Pohnpei Standard Time (UTC+11) + timezones['PST'] = timezone('America/Los_Angeles') # Pacific Standard Time (North America) (UTC−08) + timezones['PYST'] = timezone('America/Asuncion') # Paraguay Summer Time (South America)[7] (UTC−03) + timezones['PYT'] = timezone('America/Asuncion') # Paraguay Time (South America)[8] (UTC−04) + timezones['RET'] = timezone('Indian/Reunion') # Réunion Time (UTC+04) + timezones['ROTT'] = timezone('Antarctica/Rothera') # Rothera Research Station Time (UTC−03) + timezones['SAKT'] = timezone('Asia/Vladivostok') # Sakhalin Island time (UTC+11) + timezones['SAMT'] = timezone('Europe/Samara') # Samara Time (UTC+04) + timezones['SAST'] = timezone('Africa/Johannesburg') # South African Standard Time (UTC+02) + timezones['SBT'] = timezone('Pacific/Guadalcanal') # Solomon Islands Time (UTC+11) + timezones['SCT'] = timezone('Indian/Mahe') # Seychelles Time (UTC+04) + timezones['SGT'] = timezone('Asia/Singapore') # Singapore Time (UTC+08) + timezones['SLST'] = timezone('Asia/Colombo') # Sri Lanka Standard Time (UTC+05:30) + timezones['SRET'] = timezone('Asia/Srednekolymsk') # Srednekolymsk Time (UTC+11) + timezones['SRT'] = timezone('America/Paramaribo') # Suriname Time (UTC−03) + timezones['SST'] = timezone('Asia/Singapore') # Singapore Standard Time (UTC+08) + timezones['SYOT'] = timezone('Antarctica/Syowa') # Showa Station Time (UTC+03) + timezones['TAHT'] = timezone('Pacific/Tahiti') # Tahiti Time (UTC−10) + timezones['TFT'] = timezone('Indian/Kerguelen') # Indian/Kerguelen (UTC+05) + timezones['THA'] = timezone('Asia/Bangkok') # Thailand Standard Time (UTC+07) + timezones['TJT'] = timezone('Asia/Dushanbe') # Tajikistan Time (UTC+05) + timezones['TKT'] = timezone('Pacific/Fakaofo') # Tokelau Time (UTC+13) + timezones['TLT'] = timezone('Asia/Dili') # Timor Leste Time (UTC+09) + timezones['TMT'] = timezone('Asia/Ashgabat') # Turkmenistan Time (UTC+05) + timezones['TOT'] = timezone('Pacific/Tongatapu') # Tonga Time (UTC+13) + timezones['TVT'] = timezone('Pacific/Funafuti') # Tuvalu Time (UTC+12) + timezones['ULAST'] = timezone('Asia/Ulan_Bator') # Ulaanbaatar Summer Time (UTC+09) + timezones['ULAT'] = timezone('Asia/Ulan_Bator') # Ulaanbaatar Standard Time (UTC+08) + timezones['USZ1'] = timezone('Europe/Kaliningrad') # Kaliningrad Time (UTC+02) + timezones['UTC'] = timezone('UTC') # Coordinated Universal Time (UTC±00) + timezones['UYST'] = timezone('America/Montevideo') # Uruguay Summer Time (UTC−02) + timezones['UYT'] = timezone('America/Montevideo') # Uruguay Standard Time (UTC−03) + timezones['UZT'] = timezone('Asia/Tashkent') # Uzbekistan Time (UTC+05) + timezones['VET'] = timezone('America/Caracas') # Venezuelan Standard Time (UTC−04) + timezones['VLAT'] = timezone('Asia/Vladivostok') # Vladivostok Time (UTC+10) + timezones['VOLT'] = timezone('Europe/Volgograd') # Volgograd Time (UTC+04) + timezones['VOST'] = timezone('Antarctica/Vostok') # Vostok Station Time (UTC+06) + timezones['VUT'] = timezone('Pacific/Efate') # Vanuatu Time (UTC+11) + timezones['WAKT'] = timezone('Pacific/Wake') # Wake Island Time (UTC+12) + timezones['WAST'] = timezone('Africa/Lagos') # West Africa Summer Time (UTC+02) + timezones['WAT'] = timezone('Africa/Lagos') # West Africa Time (UTC+01) + timezones['WEST'] = timezone('Europe/London') # Western European Summer Time (UTC+01) + timezones['WET'] = timezone('Europe/London') # Western European Time (UTC±00) + timezones['WIT'] = timezone('Asia/Jakarta') # Western Indonesian Time (UTC+07) + timezones['WST'] = timezone('Australia/Perth') # Western Standard Time (UTC+08) + timezones['YAKT'] = timezone('Asia/Yakutsk') # Yakutsk Time (UTC+09) + timezones['YEKT'] = timezone('Asia/Yekaterinburg') # Yekaterinburg Time (UTC+05) - return timezones \ No newline at end of file + return timezones From bdcb74587ee64c219acc622adf3fe143074fe522 Mon Sep 17 00:00:00 2001 From: bobloy Date: Thu, 24 Sep 2020 11:00:08 -0400 Subject: [PATCH 11/22] Bump to BETA, change requirements --- fifo/info.json | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/fifo/info.json b/fifo/info.json index dda63ce..eb2a576 100644 --- a/fifo/info.json +++ b/fifo/info.json @@ -3,14 +3,14 @@ "Bobloy" ], "min_bot_version": "3.4.0", - "description": "[ALPHA] Schedule commands to be run at certain times or intervals", + "description": "[BETA] Schedule commands to be run at certain times or intervals", "hidden": false, "install_msg": "Thank you for installing FIFO.\nGet started with `[p]load fifo`, then `[p]help FIFO`", - "short": "[ALPHA] Schedule commands to be run at certain times or intervals", + "short": "[BETA] Schedule commands to be run at certain times or intervals", "end_user_data_statement": "This cog does not store any End User Data", "requirements": [ "apscheduler", - "python-dateutil" + "pytz" ], "tags": [ "bobloy", @@ -24,6 +24,7 @@ "date", "datetime", "time", - "calendar" + "calendar", + "timezone" ] } \ No newline at end of file From 9f17bca226feb232e92f27a994acc420ef0d5f6f Mon Sep 17 00:00:00 2001 From: bobloy Date: Thu, 24 Sep 2020 11:02:04 -0400 Subject: [PATCH 12/22] Change imports --- fifo/datetime_cron_converters.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fifo/datetime_cron_converters.py b/fifo/datetime_cron_converters.py index 0f03eff..9e01cc8 100644 --- a/fifo/datetime_cron_converters.py +++ b/fifo/datetime_cron_converters.py @@ -1,10 +1,10 @@ from datetime import datetime, tzinfo from typing import TYPE_CHECKING -from pytz import timezone from apscheduler.triggers.cron import CronTrigger -from dateutil import parser, tz +from dateutil import parser from discord.ext.commands import BadArgument, Converter +from pytz import timezone from fifo.timezones import assemble_timezones From 596865e49d6e0a8a43b8cd5bceea519c34d84d90 Mon Sep 17 00:00:00 2001 From: bobloy Date: Thu, 24 Sep 2020 12:11:32 -0400 Subject: [PATCH 13/22] Dad hotfix. Don't listen to bots --- dad/dad.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/dad/dad.py b/dad/dad.py index edf98c5..0be7fce 100644 --- a/dad/dad.py +++ b/dad/dad.py @@ -85,6 +85,8 @@ class Dad(Cog): @commands.Cog.listener() async def on_message_without_command(self, message: discord.Message): + if message.author.bot: + return guild: discord.Guild = getattr(message, "guild", None) if guild is None: return From db1d64ae3e3865a00443c0d53773dc2c8ba7f4c8 Mon Sep 17 00:00:00 2001 From: bobloy Date: Fri, 25 Sep 2020 16:59:30 -0400 Subject: [PATCH 14/22] More async iters --- timerole/timerole.py | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/timerole/timerole.py b/timerole/timerole.py index 3815dcd..7484267 100644 --- a/timerole/timerole.py +++ b/timerole/timerole.py @@ -157,7 +157,7 @@ class Timerole(Cog): await ctx.maybe_send_embed(out) async def timerole_update(self): - for guild in self.bot.guilds: + async for guild in AsyncIter(self.bot.guilds): addlist = [] removelist = [] @@ -200,7 +200,7 @@ class Timerole(Cog): async def announce_roles(self, title, role_list, channel, guild, to_add: True): results = "" - for member, role_id in role_list: + async for member, role_id in AsyncIter(role_list): role = discord.utils.get(guild.roles, id=role_id) try: if to_add: @@ -219,7 +219,7 @@ class Timerole(Cog): log.info(results) async def check_required_and_date(self, role_list, check_roles, has_roles, member, role_dict): - for role_id in check_roles: + async for role_id in AsyncIter(check_roles): # Check for required role if "required" in role_dict[str(role_id)]: if not set(role_dict[str(role_id)]["required"]) & set(has_roles): @@ -242,6 +242,3 @@ class Timerole(Cog): while self is self.bot.get_cog("Timerole"): await self.timerole_update() await sleep_till_next_hour() - - - From ab1b069ee98435ff14db8a27e1eb41941d1e85f6 Mon Sep 17 00:00:00 2001 From: bobloy Date: Mon, 28 Sep 2020 08:44:03 -0400 Subject: [PATCH 15/22] Move games to non-functional --- audiotrivia/data/lists/{ => non_funcitonal_lists}/games.yaml | 1 + 1 file changed, 1 insertion(+) rename audiotrivia/data/lists/{ => non_funcitonal_lists}/games.yaml (99%) diff --git a/audiotrivia/data/lists/games.yaml b/audiotrivia/data/lists/non_funcitonal_lists/games.yaml similarity index 99% rename from audiotrivia/data/lists/games.yaml rename to audiotrivia/data/lists/non_funcitonal_lists/games.yaml index 4de795a..da1dcb6 100644 --- a/audiotrivia/data/lists/games.yaml +++ b/audiotrivia/data/lists/non_funcitonal_lists/games.yaml @@ -1,4 +1,5 @@ AUTHOR: Plab +NEEDS: New links for all songs. https://www.youtube.com/watch?v=f9O2Rjn1azc: - Transistor https://www.youtube.com/watch?v=PgUhYFkVdSY: From b27b252e6f28ef5a23218933efd0b885c3fde529 Mon Sep 17 00:00:00 2001 From: bobloy Date: Mon, 28 Sep 2020 08:44:14 -0400 Subject: [PATCH 16/22] Add new videogames trivia list --- audiotrivia/data/lists/videogames.yaml | 1762 ++++++++++++++++++++++++ 1 file changed, 1762 insertions(+) create mode 100644 audiotrivia/data/lists/videogames.yaml diff --git a/audiotrivia/data/lists/videogames.yaml b/audiotrivia/data/lists/videogames.yaml new file mode 100644 index 0000000..eec01b6 --- /dev/null +++ b/audiotrivia/data/lists/videogames.yaml @@ -0,0 +1,1762 @@ +Author: Bobloy +https://www.youtube.com/watch?v=GBPbJyxqHV0: +- Super Mario 64 +https://www.youtube.com/watch?v=0jXTBAGv9ZQ: +- Halo +https://www.youtube.com/watch?v=ZksNhHyEhE0: +- Sonic Generations +https://www.youtube.com/watch?v=4qJ-xEZhGms: +- The Legend of Zelda A Link to the Past +- A Link to the Past +https://www.youtube.com/watch?v=0J5gN1DwNDE: +- The Elder Scrolls 4 Oblivion +- Elder Scrolls 4 +- Oblivion +https://www.youtube.com/watch?v=VTsD2FjmLsw: +- Mass Effect 2 +https://www.youtube.com/watch?v=yYTY9EkFSRU: +- Mortal Kombat Deception +https://www.youtube.com/watch?v=uhscMsBhNhw: +- Super Mario Bros +https://www.youtube.com/watch?v=Jk4P10nsq4c: +- Kingdom Hearts +https://www.youtube.com/watch?v=qDnaIfiH37w: +- Super Smash Bros for Wii U +- Super Smash Bros Wii U +https://www.youtube.com/watch?v=-8wo0KBQ3oI: +- Doom +https://www.youtube.com/watch?v=jLJLyneZGKc: +- Super Street Fighter 2 +https://www.youtube.com/watch?v=T5ASJvTgpJo: +- Call Of Duty Black Ops +https://www.youtube.com/watch?v=Gb33Qnbw520: +- Super Mario Land +https://www.youtube.com/watch?v=omvdFcr0z08: +- Mortal Kombat +https://www.youtube.com/watch?v=W4VTq0sa9yg: +- GTA San Andreas +- Grand Theft Auto San Andreas +https://www.youtube.com/watch?v=7Lj1aw4J8ZA: +- Kirby's Dream Land +- Kirbys Dream Land +https://www.youtube.com/watch?v=O5FsjHRIVrc: +- Overwatch +https://www.youtube.com/watch?v=kSA4U4jNq4E: +- Hitman +https://www.youtube.com/watch?v=kzvZE4BY0hY: +- Fallout 4 +https://www.youtube.com/watch?v=5vYsVk23oxA: +- Super Metroid +https://www.youtube.com/watch?v=TVEyGntyOZQ: +- Sonic 2 +https://www.youtube.com/watch?v=EWbfixMWg4g: +- Super Smash Bros +https://www.youtube.com/watch?v=Kxp1qIYy2jQ: +- Super Smash Bros Melee +https://www.youtube.com/watch?v=zeKE0NHUtUw: +- Super Smash Bros Brawl +https://www.youtube.com/watch?v=eWSU8YOa3jU: +- Super Smash Bros 4 +https://www.youtube.com/watch?v=oC83pBZ0Z2I: +- Super Smash Bros Ultimate +https://www.youtube.com/watch?v=b8JbXCe3NJk: +- Pokémon Red/Blue/Yellow +- Pokémon Red +- Pokemon Red +- Pokémon Blue +- Pokemon Blue +- Pokémon Yellow +- Pokemon Yellow +https://www.youtube.com/watch?v=O9FeFkMyBIY: +- The Legend of Zelda Ocarina of Time +- Zelda Ocarina of Time +https://www.youtube.com/watch?v=xtJcoZ9E9ZQ: +- WOW +- World of Warcraft +https://www.youtube.com/watch?v=oDo3wlDretk: +- Street Fighter 2 +https://www.youtube.com/watch?v=l2qD1h9mGF0: +- Sonic Unleashed +https://www.youtube.com/watch?v=Oa2TCaE4MGk: +- Sonic Adventure 2 +https://www.youtube.com/watch?v=WJRoRt155mA: +- Mega Man 2 +https://www.youtube.com/watch?v=N6noiPFB3io: +- Minecraft +https://www.youtube.com/watch?v=XcHDVwL-1W8: +- Call Of Duty WWII +- Call of Duty WW2 +https://www.youtube.com/watch?v=Cgh4CFzKCps: +- Cuphead +https://www.youtube.com/watch?v=mEgE5z6Sl7Y: +- Assassin's Creed 2 +https://www.youtube.com/watch?v=KmmNYTg-wSA: +- Donkey Kong +https://www.youtube.com/watch?v=dVPF-lboK14: +- God of War 3 +https://www.youtube.com/watch?v=vf2yKCCRE50: +- New Super Mario Bros Wii +https://www.youtube.com/watch?v=BqPgeWf8vNM: +- Minecraft +https://www.youtube.com/watch?v=23hJeaLotEw: +- The Legend of Zelda Skyward Sword +- Skyward Sword +https://www.youtube.com/watch?v=hMa4hZQbrms: +- Undertale +https://www.youtube.com/watch?v=LWVjNNKDYz8: +- Ryse Son of Rome +https://www.youtube.com/watch?v=EAwWPadFsOA: +- Mortal Kombat +https://www.youtube.com/watch?v=YEZhF_98cIc: +- Uncharted 4 +https://www.youtube.com/watch?v=LRKfd5EKBtI: +- Destiny +https://www.youtube.com/watch?v=TgjOBqD_ljk: +- Super Mario Galaxy +https://www.youtube.com/watch?v=cPWBG6_jn4Y: +- The Legend of Zelda Breath of the Wild +- Breath of the Wild +- Zelda Botw +https://www.youtube.com/watch?v=M-U3sVX2G3w: +- Metroid +https://www.youtube.com/watch?v=b62RgDBmly8: +- Fire Emblem +https://www.youtube.com/watch?v=d2tdSiQAF20: +- Sonic the Hedgehog 2006 +- Sonic the Hedgehog 06 +- Sonic 06 +- Sonic 2006 +https://www.youtube.com/watch?v=qI-Takf76RY: +- Mortal Kombat +https://www.youtube.com/watch?v=GFDvcR7Ozbg: +- Kingdom hearts Birth By Sleep +https://www.youtube.com/watch?v=F-QCjTBR0Pg: +- Halo 2 Anniversary +https://www.youtube.com/watch?v=c0SuIMUoShI: +- Super Mario Bros +https://www.youtube.com/watch?v=LnSp9rgfel8: +- Borderlands +https://www.youtube.com/watch?v=cpXXfCzSmJQ: +- Red Dead Redemption +https://www.youtube.com/watch?v=CMfx3MT8ge0: +- The Elder Scrolls 5 Skyrim +- Elder Scrolls 5 +- Skyrim +https://www.youtube.com/watch?v=LtmZJwbLjb0: +- Super Mario 3D World +https://www.youtube.com/watch?v=HGXo7LExG6o: +- Tetris +https://www.youtube.com/watch?v=aUS36INQoUw: +- Fire Emblem Shadow Dragon and the Blade of Light +- Shadow Dragon and the Blade of Light +https://www.youtube.com/watch?v=s7RRgF5Ve_E: +- Undertale +https://www.youtube.com/watch?v=MuVAaU63K7k: +- Sonic Heroes +https://www.youtube.com/watch?v=7lq5rr0RTeU: +- The Legend of Zelda Twilight Princess +- Twilight Princess +https://www.youtube.com/watch?v=S62IDJBdGWA: +- Mortal Kombat X +- Mortal Komba 10 +https://www.youtube.com/watch?v=_50vhftK66I: +- Super Mario World +https://www.youtube.com/watch?v=cZjSrW4p7r8: +- Sonic Adventure 2 +https://www.youtube.com/watch?v=e-nXonpnFHI: +- Monster Hunter Frontier G6 +https://www.youtube.com/watch?v=_dWMv2hfck0: +- Halo 2 +https://www.youtube.com/watch?v=SV0IF4XVBlE: +- Battlefield 1 +https://www.youtube.com/watch?v=rqIRZHPuiqE: +- Middle Earth Shadow of War +- Shadow of War +https://www.youtube.com/watch?v=qQGh4dy1cCA: +- Killzone 3 +https://www.youtube.com/watch?v=e9r5hx47kxM: +- Super Mario Odyssey +https://www.youtube.com/watch?v=SXKrsJZWqK0: +- Batman Arkham City +https://www.youtube.com/watch?v=Wbk8WeQU0rc: +- Far Cry +https://www.youtube.com/watch?v=4i8qAZOu5-g: +- Crash Bandicoot +https://www.youtube.com/watch?v=qEpaZR2Dvlg: +- Super Mario World +https://www.youtube.com/watch?v=-uEc8_dcYUc: +- Battlefield 4 +https://www.youtube.com/watch?v=jqE8M2ZnFL8: +- Grand Theft Auto 4 +https://www.youtube.com/watch?v=_kTBbTSjZpI: +- Shadow the Hedgehog +https://www.youtube.com/watch?v=QG77HTdreh0: +- Kid Icarus Uprising +https://www.youtube.com/watch?v=Z6NaZrPQGfY: +- Sonic Adventure 2 +https://www.youtube.com/watch?v=GkQUDi0pMAE: +- Marvel Ultimate Alliance +https://www.youtube.com/watch?v=o78T9-I4OGA: +- The Legend of Zelda The Wind Waker +- Zelda Wind Waker +- Zelda The Wind Waker +https://www.youtube.com/watch?v=dLDWYSQkUbE: +- Halo Combat Evolved +https://www.youtube.com/watch?v=mp9mzmq5Oas: +- Tokyo Mirage Sessions FE +https://www.youtube.com/watch?v=T5_vKsROSU0: +- Halo 2 +https://www.youtube.com/watch?v=MC0hV3dea9g: +- Sonic R +https://www.youtube.com/watch?v=dHkyqHlQ_is: +- Marvel Ultimate Alliance +https://www.youtube.com/watch?v=VfGeeZwv4Os: +- Diablo III +- Diablo 3 +https://www.youtube.com/watch?v=E3tkgU0pQmQ: +- Super Mario Sunshine +https://www.youtube.com/watch?v=53aDI5K49F4: +- Resident Evil 2 +https://www.youtube.com/watch?v=f43swtBDkuo: +- Marvel Ultimate Alliance +https://www.youtube.com/watch?v=cn144yWiZF4: +- Silent Hill 2 +https://www.youtube.com/watch?v=JSR5rROsvL0: +- Super Mario 3D Land +https://www.youtube.com/watch?v=CXxEUEK2_cs: +- Forza Motorsport 6 +https://www.youtube.com/watch?v=r8sB8N44eBE: +- Sonic Adventure (Theme of Knuckles) +- Sonic Adventure +https://www.youtube.com/watch?v=jrB6DLpIDaA: +- Rocket League +https://www.youtube.com/watch?v=6vY7S6iwwlQ: +- GTA San Andreas +- Grand Theft Auto San Andreas +https://www.youtube.com/watch?v=ndaJphlTPY8: +- Gears of War +https://www.youtube.com/watch?v=j9JWZ0mlX94: +- Luigi's Mansion +- Luigis Mansion +https://www.youtube.com/watch?v=zh4r_sXHyjc: +- Marvel Ultimate Alliance +https://www.youtube.com/watch?v=CvERHiTfx9w: +- Sonic Adventure 2 +https://www.youtube.com/watch?v=1TxEdJaZkY4: +- Dead by Daylight +https://www.youtube.com/watch?v=rxkiOLs06Z8: +- Injustice 2 +https://www.youtube.com/watch?v=bG0xho_yoaU: +- Marvel Ultimate Alliance +https://www.youtube.com/watch?v=xsyPHkeyz6o: +- Super Mario Galaxy 2 +https://www.youtube.com/watch?v=MdQvcgBmexw: +- Battlefront 2 +https://www.youtube.com/watch?v=6lR4nexN7RE: +- DOTA 2 +https://www.youtube.com/watch?v=m0NhFUw8mpI: +- Super Smash Bros Wii U +https://www.youtube.com/watch?v=E9s1ltPGQOo: +- Mii Channel +https://www.youtube.com/watch?v=QSBco8kVuZM: +- Fallout 3 +https://www.youtube.com/watch?v=Tz5Ld2STm2M: +- Ghost Recon +https://www.youtube.com/watch?v=oY9m2sHQwLs: +- Sonic R +https://www.youtube.com/watch?v=NF8kT_6giu8: +- Halo 2 +https://www.youtube.com/watch?v=EK3q3Jb3TCQ: +- The Elder Scrolls 5 Skyrim +- Elder Scrolls 5 +- Skyrim +https://www.youtube.com/watch?v=h4fOIVlEOIY: +- Assassin’s Creed Origins +- Assasins Creed Origins +https://www.youtube.com/watch?v=mziw3FQkZYg: +- Metroid Prime +https://www.youtube.com/watch?v=CXdNLpOrwFQ: +- Pikmin 3 +https://www.youtube.com/watch?v=RZFhVs6OGAc: +- Wii Fit +https://www.youtube.com/watch?v=UW-7Em3BYiA: +- Star Fox 64 +https://www.youtube.com/watch?v=9k-XrIGobsA: +- Super Mario 3D World +https://www.youtube.com/watch?v=kohY_vaMp0c: +- Bayonetta +https://www.youtube.com/watch?v=4roOuDyLkNo: +- Fallout 3 +https://www.youtube.com/watch?v=4wzRjZh3EkM: +- DOTA 2 +https://www.youtube.com/watch?v=OiwLQAA_V8E: +- Fire Emblem Fates +https://www.youtube.com/watch?v=UigzN-4JR14: +- Kingdom Hearts +https://www.youtube.com/watch?v=bIoPaeigMJw: +- Halo 2 +https://www.youtube.com/watch?v=JIE94pn4iJs: +- Killer Instinct +https://www.youtube.com/watch?v=Y9Jt52Q6GD4: +- Deadpool +https://www.youtube.com/watch?v=uNBzfe3TAEs: +- Shadow the Hedgehog +https://www.youtube.com/watch?v=PZVNi6L7g54: +- Mario Party 8 +https://www.youtube.com/watch?v=0uom8gJxe_8: +- Overwatch +https://www.youtube.com/watch?v=OCH6nQYflwY: +- Kirby's Dream Land +- Kirbys Dream Land +https://www.youtube.com/watch?v=PDURJZp3Sv4: +- World of Warcraft +- WoW +https://www.youtube.com/watch?v=3DYqiG1VmMQ: +- Diablo 2 +https://www.youtube.com/watch?v=xWSiztHV0us: +- Mortal Kombat Armageddon +https://www.youtube.com/watch?v=D6fkkVMsrAA: +- Super Smash Bros 3DS +- Mr Game and Watch +https://www.youtube.com/watch?v=tz82xbLvK_k: +- Undertale +https://www.youtube.com/watch?v=EV6E13xODyA: +- Bayonetta +https://www.youtube.com/watch?v=bq_jS6o3OoY: +- Super Mario 64 +https://www.youtube.com/watch?v=M3CSWLFL5u8: +- The Legend of Zelda The Wind Waker +- Zelda Wind Waker +- Zelda The Wind Waker +https://www.youtube.com/watch?v=PnzjqTvHJto: +- Destiny +https://www.youtube.com/watch?v=JntQ1X46qgg: +- Sonic Adventure 2 +https://www.youtube.com/watch?v=M9Ki3br3Qec: +- Deadrising +https://www.youtube.com/watch?v=bwaFADxmoeo: +- Splatoon +https://www.youtube.com/watch?v=Tc0fDGVQtJk: +- Metal Gear Solid +https://www.youtube.com/watch?v=ZvwQNlNIcr8: +- Forza Horizon 3 +https://www.youtube.com/watch?v=B7eRmpqtL40: +- Call of Duty Ghosts +https://www.youtube.com/watch?v=qURei6svd90: +- Doom II +- Doom 2 +https://www.youtube.com/watch?v=U1sYDWzhEog: +- Mario Party 8 +https://www.youtube.com/watch?v=aKKFjNVZkHU: +- Marvel vs Capcom 3 +https://www.youtube.com/watch?v=PDM2qukzKwg: +- Team Fortress 2 +https://www.youtube.com/watch?v=0nlJuwO0GDs: +- League of Legends +https://www.youtube.com/watch?v=UuL8nnyzf14: +- Fire Emblem The Sacred Stones +https://www.youtube.com/watch?v=ARFeJ3z6wes: +- Mario Party DS +https://www.youtube.com/watch?v=pNB4Cy4mftI: +- Sonic and the Black Knight +https://www.youtube.com/watch?v=GWba_XNUxtA: +- Quantum Break +https://www.youtube.com/watch?v=7XjrTV6M84c: +- Dead Rising 3 +https://www.youtube.com/watch?v=LjYWmShOoA4: +- Overwatch +https://www.youtube.com/watch?v=1pga6OLyrAg: +- Borderlands +https://www.youtube.com/watch?v=1OEyASR5C5U: +- Uncharted +https://www.youtube.com/watch?v=K-pJ1xMF7QE: +- League of Legends +https://www.youtube.com/watch?v=9q_MEnn5w0I: +- Minecraft +https://www.youtube.com/watch?v=5WduvI0CZ4c: +- Mega Man +https://www.youtube.com/watch?v=mB7veHQPF6M: +- Halo 2 +https://www.youtube.com/watch?v=mtxlFKP0OgY: +- Call of Duty Modern Warfare 2 +- Modern Warfare 2 +https://www.youtube.com/watch?v=2Jmty_NiaXc: +- Pokémon Red/Blue/Yellow +- Pokémon Red +- Pokemon Red +- Pokémon Blue +- Pokemon Blue +- Pokémon Yellow +- Pokemon Yellow +https://www.youtube.com/watch?v=6YQm2M-v4l0: +- Metal Gear +https://www.youtube.com/watch?v=r9spthA_nAA: +- Earthbound +https://www.youtube.com/watch?v=M_hUepNd52Q: +- Fallout New Vegas +https://www.youtube.com/watch?v=_X2A7qLDuLQ: +- GTA San Andreas +- Grand Theft Auto San Andreas +https://www.youtube.com/watch?v=8SM_39H-ztc: +- Kingdom Hearts +https://www.youtube.com/watch?v=Vj3dgToY_Fg: +- Ratchet and clank +https://www.youtube.com/watch?v=jgn3GSiYtEc: +- Middle earth Shadow of Mordor +- Shadow of Mordor +https://www.youtube.com/watch?v=sZ1f6BEkn_g: +- Paper Mario The Thousand-Year Door +- Paper Mario The Thousand Year Door +https://www.youtube.com/watch?v=T7AkuzZOSWM: +- DOTA 2 +https://www.youtube.com/watch?v=ixR9kOAR3ZY: +- Dragon Quest IX Sentinels of the Starry Skies +- Dragon Quest 9 +https://www.youtube.com/watch?v=WiQ1O5of0u4: +- Street Fighter II +- Street Fighter 2 +https://www.youtube.com/watch?v=0hEYvdMoF2g: +- The Legend of Zelda Ocarina of Time +- Zelda Ocarina of Time +https://www.youtube.com/watch?v=mK4mP7grUWY: +- Final Fantasy IX +- Final Fantasy 9 +https://www.youtube.com/watch?v=YzfEjZV46wM: +- Forza Motorsport +https://www.youtube.com/watch?v=vX7G4Qq6Li0: +- Shadow the Hedgehog +https://www.youtube.com/watch?v=95jDylAOsBQ: +- Assassins Creed +https://www.youtube.com/watch?v=EjazC45Qkww: +- Castlevania II Simon's Quest +- Castlevania 2 +https://www.youtube.com/watch?v=w09rc1VfWRQ: +- Forza Motorsport 4 +https://www.youtube.com/watch?v=Nc9w4QoSdfk: +- Tomb Raider +https://www.youtube.com/watch?v=VD9XmYnml_M: +- GTA V +- GTA 5 +- Grand Theft Auto 5 +https://www.youtube.com/watch?v=D5Z95cH7iDA: +- Ghost Recon Island Thunder +https://www.youtube.com/watch?v=o9Pu92St5O0: +- Metal Gear Solid 4 +https://www.youtube.com/watch?v=Bm2U7fqtSak: +- Ninja Gaiden +https://www.youtube.com/watch?v=NfCwWu8z8zE: +- Resident Evil +https://www.youtube.com/watch?v=zWHMj6ccSwA: +- Nintendo Land +https://www.youtube.com/watch?v=L8Vbg-1kPvg: +- Far Cry 5 +https://www.youtube.com/watch?v=hOju2ThS--M: +- Sonic the Hedgehog 2006 +- Sonic the Hedgehog 06 +- Sonic 06 +- Sonic 2006 +https://www.youtube.com/watch?v=EYW7-hNXZlM: +- Sonic CD +https://www.youtube.com/watch?v=ijEOqab3StE: +- Shadow the Hedgehog +https://www.youtube.com/watch?v=nJD-Ufi1jGk: +- The Elder Scrolls 3 Morrowind +- Elder Scrolls 3 +- Morrowind +https://www.youtube.com/watch?v=Iy4iQvJo24U: +- Crysis 2 +https://www.youtube.com/watch?v=o_ayLF9vdls: +- Dragon Age Origins +https://www.youtube.com/watch?v=LFcH84oNU6s: +- Skies of Arcadia +https://www.youtube.com/watch?v=9wMjq58Fjvo: +- Castle Crashers +https://www.youtube.com/watch?v=WA2WjP6sgrc: +- Donkey Kong Country Tropical Freeze +- Donkey Kong Tropical Freeze +https://www.youtube.com/watch?v=_Uzlm2MaCWw: +- MegaMan Maverick Hunter X +https://www.youtube.com/watch?v=Vm7aNxzWTJk: +- Prince of Persia +https://www.youtube.com/watch?v=viM0-3PXef0: +- The Witcher 3 +- Witcher 3 +https://www.youtube.com/watch?v=TO7UI0WIqVw: +- Super Smash Bros Brawl +https://www.youtube.com/watch?v=Y6ljFaKRTrI: +- Portal +https://www.youtube.com/watch?v=8yj-25MOgOM: +- Star Fox Zero +https://www.youtube.com/watch?v=W7rhEKTX-sE: +- Shovel Knight +https://www.youtube.com/watch?v=dTZ8uhJ5hIE: +- Kirby's Epic Yarn Music +- Kirbys Epic Yarn Music +https://www.youtube.com/watch?v=GQZLEegUK74: +- Goldeneye 007 +https://www.youtube.com/watch?v=zz8m1oEkW5k: +- Tetris Blitz +https://www.youtube.com/watch?v=ya3yxTbkh5s: +- Okami +https://www.youtube.com/watch?v=OYc_Vosp9_Y: +- The Legend of Zelda A Link Between Worlds +- Zelda A Link Between Worlds +https://www.youtube.com/watch?v=6LB7LZZGpkw: +- Silent Hill 2 +https://www.youtube.com/watch?v=TLYimAlnxEk: +- Mario Kart 8 +https://www.youtube.com/watch?v=-_Lwf6uaYOs: +- Kid Icarus Uprising +https://www.youtube.com/watch?v=H1etAFiAPYQ: +- Pikmin 3 +https://www.youtube.com/watch?v=jrbN2y5r-vU: +- Starcraft +https://www.youtube.com/watch?v=3o_RwQysgA8: +- The Last of Us +https://www.youtube.com/watch?v=75OlLWtV8gc: +- Pokémon Diamond/Pearl/Platinum +- Pokémon Diamond +- Pokemon Diamond +- Pokémon Pearl +- Pokemon Pearl +- Pokémon Platinum +- Pokemon Platinum +https://www.youtube.com/watch?v=sWTqNGUFF0g: +- Gunman Clive +https://www.youtube.com/watch?v=D4ragdexomw: +- Apollo Justice Ace Attorney +- Ace Attorney Apollo Justice +https://www.youtube.com/watch?v=poxDJHoYxCc: +- Gravity Rush +- Gravity Daze +https://www.youtube.com/watch?v=kwmOSMttZtM: +- Luigi's Mansion Dark Moon +- Luigis Mansion Dark Moon +https://www.youtube.com/watch?v=Ib19evMJJVI: +- PAYDAY The Heist +https://www.youtube.com/watch?v=7jVPwHqXz8A: +- Metroid Fusion +https://www.youtube.com/watch?v=utOa8ZMKwSA: +- Super Smash Bros Brawl +https://www.youtube.com/watch?v=2OOYZcVIp8w: +- Super Mario Galaxy +https://www.youtube.com/watch?v=u4jlk2x3Om0: +- Banjo-Kazooie Nuts & Bolts +- Banjo-Kazooie Nuts and Bolts +- Banjo Kazooie Nuts and Bolts +https://www.youtube.com/watch?v=mbsm2YXfAzo: +- Mortal Kombat Deception +https://www.youtube.com/watch?v=WB1I3PV7Ml8: +- Crash Bandicoot +https://www.youtube.com/watch?v=gy0T8nmw5GQ: +- Hitman 2 Silent Assassin +- Hitman 2 +https://www.youtube.com/watch?v=WuUVKOwUEA0: +- Super Mario Bros 3 +https://www.youtube.com/watch?v=6hgK3XJWSOk: +- Startropics +https://www.youtube.com/watch?v=_5iRzoSLWMM: +- The Legend of Zelda A Link to the Past +- A Link to the Past +https://www.youtube.com/watch?v=bV80prS5hBk: +- Silent Hill +https://www.youtube.com/watch?v=RDeJMAsrZMU: +- Sonic Adventure 2 +https://www.youtube.com/watch?v=QEmbOL3AAEs: +- Final Fantasy VI +- Final Fantasy 6 +https://www.youtube.com/watch?v=CoOTDI2KZco: +- Mega Man 3 +https://www.youtube.com/watch?v=Xeloqt4Wkcw: +- Streets Of Rage 2 +https://www.youtube.com/watch?v=wOQ5YyAorrw: +- Pokémon X & Y +- Pokemon X +- Pokemon Y +https://www.youtube.com/watch?v=CU1goWmsTRg: +- Duck Hunt +https://www.youtube.com/watch?v=oJqlpwN9mUM: +- Mario Party 2 +https://www.youtube.com/watch?v=ye78aoUtqOY: +- Pokémon GO +- Pokemon GO +https://www.youtube.com/watch?v=hf_D3pK6LVI: +- Phoenix Write Ace Attorney +https://www.youtube.com/watch?v=7qvudKHKozc: +- Shining Force II +- Shining Force 2 +https://www.youtube.com/watch?v=xPJcOybiCKM: +- Super Mario 64 +https://www.youtube.com/watch?v=IHxFTQYAqfc: +- Halo 3 +https://www.youtube.com/watch?v=0t9TlXAnDDM: +- Call of Juarez Gunslinger +https://www.youtube.com/watch?v=LuZy6A9luhU: +- Far Cry 3 +https://www.youtube.com/watch?v=HcvX3Md4uvM: +- Rainbow Six Vegas 2 +https://www.youtube.com/watch?v=RQYh342H5ec: +- Nintendo 3DS Nintendo Video +- Nintendo Video +https://www.youtube.com/watch?v=EMlQiS372Y0: +- Wii sports resort +https://www.youtube.com/watch?v=OtXHRSRQZvU: +- DK Rap +- Super Smash Bros Melee +- Donkey Kong 64 +https://www.youtube.com/watch?v=fmHEwxYdwcA: +- Mario & Luigi Bowsers Inside Story +- Bowsers Inside Story +- Mario and Luigi Bowsers Inside Story +https://www.youtube.com/watch?v=9cXiGjjLZAI: +- Pikmin 3 +https://www.youtube.com/watch?v=Q47iqNfsA80: +- The Legend of Zelda A Link Between Worlds +- A Link Between Worlds +https://www.youtube.com/watch?v=uQjcAvGTD7M: +- Professor Layton vs. Phoenix Wright Ace Attorney +- Professor Layton vs Phoenix Wright +https://www.youtube.com/watch?v=tBTb8H6vJe8: +- Donkey Kong 64 +https://www.youtube.com/watch?v=qQFseWcceDs: +- Pilotwings +https://www.youtube.com/watch?v=OVZ7EaqplsI: +- eShop Wii U +- eShop +https://www.youtube.com/watch?v=2hVsp2ncHoA: +- Marvel Ultimate Alliance +https://www.youtube.com/watch?v=kU36OmpCK_c: +- The Legend of Zelda Skyward Sword +- Skyward Sword +https://www.youtube.com/watch?v=7TCI6rdokD4: +- Street Fighter II +- Street Fighter 2 +https://www.youtube.com/watch?v=-unUysuRmWo: +- Sonic Adventure 2 +https://www.youtube.com/watch?v=QoIE04AqDgI: +- Kirby's Epic Yarn +- Kirbys Epic Yarn +https://www.youtube.com/watch?v=lSaDibas_Sw: +- Call of Duty Black Ops 3 +- Black Ops 3 +https://www.youtube.com/watch?v=HTUq3Ik1GHM: +- Kingdom Hearts II +- Kingdom Hearts 2 +https://www.youtube.com/watch?v=6ylyRyoUyH8: +- One Piece Pirate Warriors +https://www.youtube.com/watch?v=FJd6TMOZuJQ: +- Pac-Man +- Pac Man +https://www.youtube.com/watch?v=mBwmfDh7qtA: +- Dig Dug +https://www.youtube.com/watch?v=XjPF3AwVPM4: +- Finaly Fantasy +https://www.youtube.com/watch?v=KnoXA_EAnjo: +- Sonic Heroes +https://www.youtube.com/watch?v=XHpXEfa1kzk: +- Super Smash Bros Brawl +https://www.youtube.com/watch?v=mld2IxYXgt0: +- Super Robot Wars K +- SRW K +https://www.youtube.com/watch?v=Xi31NAktYDw: +- BioShock 2 +https://www.youtube.com/watch?v=YqyhezUoDj4: +- Call of Duty World at War +- World at War +https://www.youtube.com/watch?v=hOB4q01VCVg: +- Battlefield 1943 +https://www.youtube.com/watch?v=_cZoUYndFHo: +- Cuphead +https://www.youtube.com/watch?v=ojS8lCeUgsg: +- Deadpool +https://www.youtube.com/watch?v=2HTs2n0q-RA: +- Sonic Riders Zero Gravity +https://www.youtube.com/watch?v=yykgQClYlCk: +- TitanFall +https://www.youtube.com/watch?v=I6XMQYkPczI: +- Bravely Default +https://www.youtube.com/watch?v=q_TxCygjNIM: +- Deadrising +https://www.youtube.com/watch?v=2iLl_uusujo: +- STAR WARS The Old Republic +https://www.youtube.com/watch?v=KDyTjQmIWAw: +- Check Mii Out Channel Contest Menu Wii +- Check Mii Out +https://www.youtube.com/watch?v=VhjwXsDJQ2Y: +- Wii Sports +https://www.youtube.com/watch?v=fxMW5__vaDQ: +- Super Mario 64 +https://www.youtube.com/watch?v=4DJzm9cFGkg: +- Puyopuyo Tetris +- Puyo puyo Tetris +https://www.youtube.com/watch?v=G1MfL1oGN0E: +- Call of Duty Modern Warfare 3 +- Modern Warfare 3 +https://www.youtube.com/watch?v=bRLzfoySFWc: +- Assassin's Creed 4 Black Flag +- Assasins Creed 4 +- Assasins Creed Black Flag +https://www.youtube.com/watch?v=30lnA-haJiM: +- XBOX 360 Avatar Editor +- Avatar Editor +https://www.youtube.com/watch?v=czTksCF6X8Y: +- Spider-Man 2 The Game +- Spider Man 2 +- Spider-Man 2 +https://www.youtube.com/watch?v=_FAYOrpr-Fk: +- Wii Sports +https://www.youtube.com/watch?v=UbqoImQZ-EY: +- Touhou Embodiment of Scarlet Devil +- Touhou EoSD +- Embodiment of Scarlet Devil +https://www.youtube.com/watch?v=qIHqpjVxTtY: +- Super Stardust Delta +https://www.youtube.com/watch?v=VU7qTVkjMWU: +- World of Warcraft Wrath of the Lich King +- Wrath of the Lich King +- WoW WotLK +https://www.youtube.com/watch?v=YB2hQicc13Q: +- Super Smash Bros Melee +https://www.youtube.com/watch?v=9NBu_N9paNM: +- Metro Last Light +https://www.youtube.com/watch?v=aJOovInlk-w: +- Assassin's Creed 4 Black Flag +- Assasins Creed 4 +- Assasins Creed Black Flag +https://www.youtube.com/watch?v=6OYeyGi67UI: +- Call of Duty Ghosts +https://www.youtube.com/watch?v=IuLMkfG_Xu0: +- World of Warcraft +- WoW +https://www.youtube.com/watch?v=gR03h48G9rw: +- Destiny +https://www.youtube.com/watch?v=e87BLzzcwqQ: +- Halo Combat Evolved +https://www.youtube.com/watch?v=0_FquzflYYU: +- Luigis Mansion +- Luigi's Mansion +https://www.youtube.com/watch?v=I3XPus2T58o: +- The Legend of Zelda Twilight Princess +- Twilight Princess +https://www.youtube.com/watch?v=pVFYljt05hg: +- Metal Gear Solid 3 +https://www.youtube.com/watch?v=XHXVFBKZ9i8: +- Rhythm Heaven +https://www.youtube.com/watch?v=9hUT8VsLIG4: +- Pac-Man Championship Edition 2 +- Pac Man Championship Edition 2 +- Pac-Man CE 2 +- Pac Man CE 2 +https://www.youtube.com/watch?v=OziIZxI-Am4: +- Super Mario Maker +https://www.youtube.com/watch?v=frWaTmdN1Yk: +- Saga Frontier 2 +https://www.youtube.com/watch?v=r3m8_TDltwg: +- The Simpsons Hit & Run +- The Simpsons Hit and Run +https://www.youtube.com/watch?v=6kZ5TiSl2d8: +- Metal Gear Solid 2 +https://www.youtube.com/watch?v=CvL6fzXOJyY: +- Middle Earth Shadow of War +- Shadow of War +https://www.youtube.com/watch?v=zsxwbxS6LRM: +- Pocky & Rocky +- Pocky and Rocky +https://www.youtube.com/watch?v=YEo8vfvU6t8: +- Mario Golf World Tour +https://www.youtube.com/watch?v=q38jsbJ0afg: +- Marvel Ultimate Alliance 2 +https://www.youtube.com/watch?v=jbppvtGktvA: +- Super Street Fighter IV +- Super Street Fighter 4 +https://www.youtube.com/watch?v=kEdRtzNAh0g: +- Mortal Kombat +https://www.youtube.com/watch?v=SiLykPb_14g: +- Snipperclips +https://www.youtube.com/watch?v=2LhOV_ygYlY: +- Ghostbusters The Videogame +- Ghostbusters +https://www.youtube.com/watch?v=TUA9WwTV10M: +- Back to the Future the Game +- Back to the Future +https://www.youtube.com/watch?v=krISRDj6_2w: +- DSi Shop Theme +- DSi Shop +https://www.youtube.com/watch?v=R5DJENl__ZE: +- The Elder Scrolls 3 Morrowind +- Elder Scrolls 3 +- Morrowind +https://www.youtube.com/watch?v=2MDXwJ7Skik: +- Mortal Kombat 9 +https://www.youtube.com/watch?v=NKkXYxFh9M0: +- Killzone 3 +https://www.youtube.com/watch?v=5rfpGcIWe7E: +- BioShock 2 +https://www.youtube.com/watch?v=euJNO3xzprQ: +- Call of Duty Black Ops 3 +- Black Ops 3 +https://www.youtube.com/watch?v=L8EfpcF9rRc: +- Super Smash Bros Brawl +https://www.youtube.com/watch?v=LaM9YRUsDXs: +- Dark Souls +https://www.youtube.com/watch?v=nghTrcPBp3s: +- Yoshi's Story +- Yoshis Story +https://www.youtube.com/watch?v=l7vpszYDFEo: +- Destiny 2 +https://www.youtube.com/watch?v=ukMWZymYV-E: +- Borderlands +https://www.youtube.com/watch?v=ybhjox7LhmY: +- Mario Kart Wii +https://www.youtube.com/watch?v=9vevdlA1mFE: +- Pocky & Rocky 2 +- Pocky and Rocky 2 +https://www.youtube.com/watch?v=sZZgenIEL9o: +- Call of Duty Black Ops 4 +- Black Ops 4 +https://www.youtube.com/watch?v=OTF5gn5S0zs: +- Super Mario Bros Super Smash Bros Brawl +- Super Mario Bros +- Super Smash Bros Brawl +https://www.youtube.com/watch?v=OiWIpzor_Vk: +- Far Cry 5 +https://www.youtube.com/watch?v=h-xih93YIwk: +- Super Mario Bros 3 +https://www.youtube.com/watch?v=aHW0Vn-wRzs: +- Team Sonic Racing +https://www.youtube.com/watch?v=DehK_Y0TUbE: +- Angry Birds +https://www.youtube.com/watch?v=eVKj3u8JUm0: +- Super Mario 64 +https://www.youtube.com/watch?v=vCF_mG9T6-Y: +- Super Smash Bros Ultimate +- Super Smash Bros Melee +https://www.youtube.com/watch?v=o1rXwfuffwk: +- Battle Stadium D.O.N. +- Battle Stadium DON +https://www.youtube.com/watch?v=y_qHuDjE3CQ: +- Undertale +https://www.youtube.com/watch?v=kNK3gZnd3Qc: +- LEGO Marvel Super Heroes +https://www.youtube.com/watch?v=a6t_uyg_pF8: +- Final Fantasy VI +- Final Fantasy 6 +https://www.youtube.com/watch?v=Vc1wzDWFvf8: +- Super Smash Bros Melee +https://www.youtube.com/watch?v=4QR21UOXUTk: +- J Stars Victory Vs +https://www.youtube.com/watch?v=8avMLHvLwRQ: +- Wii Shop Channel +- Wii Shop +https://www.youtube.com/watch?v=d5c4KOopwLs: +- Wii Sports +https://www.youtube.com/watch?v=K5PNe0a04_I: +- Fire Emblem Echoes Shadows of Valentia +- Fire Emblem Echoes +- Shadows of Valentia +https://www.youtube.com/watch?v=8GxAi9b0ZvM: +- Super Mario Odyssey +https://www.youtube.com/watch?v=uTcOC04eEro: +- Yu-Gi-Oh! Duel Links +- Yu-Gi-Oh Duel Links +- YuGiOh Duel Links +- Yu Gi Oh Duel Links +https://www.youtube.com/watch?v=nTSXf2YVNUs: +- Final Fantasy III +- Final Fantasy 3 +https://www.youtube.com/watch?v=96uAHbo2f0o: +- Super Smash Bros Brawl +https://www.youtube.com/watch?v=AD0SP68Z2D0: +- Tom Clancys The Division +- The Division +https://www.youtube.com/watch?v=XmK8vhe6_yI: +- Destiny +https://www.youtube.com/watch?v=OM_qluyUGtY: +- Halo 2 +https://www.youtube.com/watch?v=KCQpsPFOEyU: +- Tom Clancys Rainbow Six Siege +- Rainbow Six Siege +- R6 Siege +https://www.youtube.com/watch?v=Rvi6c8toWJM: +- Counter-Strike Global Offensive +- CS GO +- CSGO +- Counter Strike GO +- Counter Strike Global Offensive +https://www.youtube.com/watch?v=WGkBan-hrR0: +- Ninja Gaiden 2 +https://www.youtube.com/watch?v=NPKG8HOyH50: +- Call of Duty Black Ops 4 +- Black Ops 4 +https://www.youtube.com/watch?v=Pva3UHPUHns: +- Luigis Mansion +https://www.youtube.com/watch?v=Gv__pDOd9R4: +- Donkey Kong 64 +https://www.youtube.com/watch?v=IJxIR35cWFg: +- Mario Party 8 +https://www.youtube.com/watch?v=6bWqgqcaQVs: +- Batman Arkham City +https://www.youtube.com/watch?v=FL6BRBzv8Ec: +- Anthem +https://www.youtube.com/watch?v=FG9uTzsqLNc: +- Counter-Strike Global Offensive +- CS GO +- CSGO +- Counter Strike GO +- Counter Strike Global Offensive +https://www.youtube.com/watch?v=-s9hGP8EPC4: +- Crackdown +https://www.youtube.com/watch?v=p7ew-8C3G_M: +- Killzone +https://www.youtube.com/watch?v=HyoZspjzaT8: +- Dragonball Z Budokai Tenkaichi 2 +https://www.youtube.com/watch?v=KveGWSYDxKY: +- Minecraft +https://www.youtube.com/watch?v=rXGdYmigdzw: +- Conker's Bad Fur Day +- Conkers Bad Fur Day +https://www.youtube.com/watch?v=bxJaHn4OcOk: +- Nintendo 3DS Camera Music +- 3DS Camera +https://www.youtube.com/watch?v=YZ3XjVVNagU: +- Undertale +https://www.youtube.com/watch?v=Rdeuye6BfmA: +- Marvel Ultimate Alliance +https://www.youtube.com/watch?v=rVzkd6B7LCA: +- Halo 3 +https://www.youtube.com/watch?v=IhQ45MHHZGA: +- Anthem +https://www.youtube.com/watch?v=rYpqRmsA94Y: +- Spider-Man PS4 +- Spider Man +https://www.youtube.com/watch?v=dFkuCBF-bf0: +- Sonic Colors +https://www.youtube.com/watch?v=jPfcnzPixBI: +- One Piece World Seeker +https://www.youtube.com/watch?v=KamjTqi4VjI: +- Kirby Air Ride +https://www.youtube.com/watch?v=7kCXNPZscFU: +- Dance Dance Revolution Mario Mix +- DDR Mario Mix +https://www.youtube.com/watch?v=CaXapWQeeeg: +- Spongebob Battle for Bikini Bottom +https://www.youtube.com/watch?v=cSiyDP_B5vY: +- The Witcher 3 Wild Hunt +- Witcher 3 +- Witcher Wild Hunt +https://www.youtube.com/watch?v=bGTWOWeFFw8: +- Marvel vs Capcom 3 +https://www.youtube.com/watch?v=Du0r5FOKbis: +- Bayonetta +https://www.youtube.com/watch?v=07mbmJHeBhg: +- Monopoly +https://www.youtube.com/watch?v=tPbnW2HmuIY: +- Super Mario Odyssey +https://www.youtube.com/watch?v=X6SVxsouuvE: +- Call of Duty Black Ops +- Black Ops +https://www.youtube.com/watch?v=zxgJTtumaV8: +- Tetris (Game Boy) - 10. Fanfare Victory (Varation) +https://www.youtube.com/watch?v=cOlCCc-_2sg: +- Dark Castle - Kirby's Dream Land 2 +https://www.youtube.com/watch?v=UDJtsfR51To: +- Xenoblade Chronicles OST - Gaur Plain +https://www.youtube.com/watch?v=tg-yC0xcI9s: +- Triggernometry - Red Dead Redemption Soundtrack +https://www.youtube.com/watch?v=rNNQBAj10n4: +- Marvel vs Capcom 3 +https://www.youtube.com/watch?v=bwhHD92bQUk: +- Sonic CD +https://www.youtube.com/watch?v=ZlTnLsjg59s: +- GTA V +- GTA 5 +- Grand Theft Auto 5 +https://www.youtube.com/watch?v=i-x22mnsUJ8: +- Gears 5 +- Gears of War 5 +https://www.youtube.com/watch?v=mOw3pZQctJ0: +- Call of Duty Advanced Warfare +https://www.youtube.com/watch?v=cnosICv2Mjg: +- Hotel Mario +https://www.youtube.com/watch?v=MMwM6hLEyeY: +- Sonic Mania +https://www.youtube.com/watch?v=XsliycURi0Y: +- Crackdown +https://www.youtube.com/watch?v=a51CkkWec1Q: +- Half-Life 2 +https://www.youtube.com/watch?v=iKBVXX8Vh7g: +- Call of Duty WWII +- Call of Duty WW2 +https://www.youtube.com/watch?v=qEvxbJROGuQ: +- Kirby Super Star +https://www.youtube.com/watch?v=_J4R6WsSKVs: +- Cuphead +https://www.youtube.com/watch?v=vcEGFAaSpzI: +- Final Fantasy VII +- Final Fantasy 7 +https://www.youtube.com/watch?v=cOWRNLaCMJg: +- Pokémon Red/Blue/Yellow +- Pokémon Red +- Pokemon Red +- Pokémon Blue +- Pokemon Blue +- Pokémon Yellow +- Pokemon Yellow +https://www.youtube.com/watch?v=XF2fA1epvLE: +- Super Mario World +https://www.youtube.com/watch?v=-tv0ZXF7uA4: +- GTA V +- GTA 5 +- Grand Theft Auto 5 +https://www.youtube.com/watch?v=3JncraxIMXY: +- Battlefield V +- Battlefield 5 +https://www.youtube.com/watch?v=fYnw_xoZCsg: +- Mario Teaches Typing 2 +https://www.youtube.com/watch?v=FQ73YtVm3Js: +- Spider-Man 2 The Game +- Spider Man 2 +- Spider-Man 2 +https://www.youtube.com/watch?v=nC5FK864qTk: +- Mortal Kombat Armageddon +https://www.youtube.com/watch?v=SnqPJv0UqKo: +- The Elder Scrolls 5 Skyrim +- Elder Scrolls 5 +- Skyrim +https://www.youtube.com/watch?v=pTE54izXTqc: +- Arkanoid R 2000 +- Arkanoid 2000 +- Arkanoid Returns +https://www.youtube.com/watch?v=FezNgPThD3M: +- Undertale +https://www.youtube.com/watch?v=DCX6c07rcJw: +- The World Ends With You +https://www.youtube.com/watch?v=hyQ6bn1Dno4: +- Sonic & All-Stars Racing Transformed +- Sonic and All Stars Racing Transformed +- Sonic and All-Stars Racing Transformed +- Sonic and Sega All-Stars Racing Transformed +- Sonic and Sega All Stars Racing Transformed +https://www.youtube.com/watch?v=okksreh2eQ4: +- Disney Universe +https://www.youtube.com/watch?v=3L97-DxwgRU: +- Billy The Wizard +https://www.youtube.com/watch?v=kY1F5QO5VOo: +- LittleBigPlanet +- Little Big Planet +https://www.youtube.com/watch?v=QEEPfzrDpoc: +- Bust a Groove +https://www.youtube.com/watch?v=JkO05j0zzZQ: +- LA Noire +https://www.youtube.com/watch?v=TNosg0EXQlU: +- Tom Clancys Rainbow Six Siege +- Rainbow Six Siege +- R6 Siege +https://www.youtube.com/watch?v=h38zN_vF_dQ: +- Fallout +https://www.youtube.com/watch?v=P9GX6Fyxr90: +- Snipperclips +https://www.youtube.com/watch?v=aKTJNO3HLEE: +- Xenoblade Chronicles +- Super Smash Bros Ultimate +https://www.youtube.com/watch?v=0gs56c9qGKA: +- Marvel Ultimate Alliance +https://www.youtube.com/watch?v=SzDmvY2pRJI: +- Yoshi's New Island +- Yoshis New Island +https://www.youtube.com/watch?v=IVH6Gl7W0hI: +- Super Mario Galaxy +https://www.youtube.com/watch?v=tZHcVMqXGhQ: +- Fire Emblem Echoes Shadows of Valentia +- Fire Emblem Echoes +- Shadows of Valentia +https://www.youtube.com/watch?v=Ltay2kMtCeM: +- Fortune Street +https://www.youtube.com/watch?v=mi3SE5j5XrU: +- Wizard101 +- Wizard 101 +https://www.youtube.com/watch?v=_nfld1C7RuE: +- Sonic and the Secret Rings +https://www.youtube.com/watch?v=nJB0OvU_vkg: +- Animal Crossing New Leaf +https://www.youtube.com/watch?v=xi0M9SIaLb4: +- Xenoblade Chronicles +https://www.youtube.com/watch?v=qw2lEHk5kDI: +- Gears of War 5 +- Gears 5 +https://www.youtube.com/watch?v=zlUWnUzpzSA: +- Halo 5 Guardians +https://www.youtube.com/watch?v=iUZyJHDasqA: +- Dark Souls II +- Dark Souls 2 +https://www.youtube.com/watch?v=jO3BZ9b1YsE: +- Nintendogs + Cats +- Nintendogs and Cats +https://www.youtube.com/watch?v=wDgQdr8ZkTw: +- Undertale +https://www.youtube.com/watch?v=O2MrJvaSjDE: +- Paper Mario Sticker Star +https://www.youtube.com/watch?v=umSJ--aGeYo: +- Portal +https://www.youtube.com/watch?v=JJOJdWubO-o: +- Plants vs Zombies Battle For Neighborville +- PvZ Battle for Neighborville +- Plants vs Zombies +https://www.youtube.com/watch?v=hUiAmrtxits: +- The Legend of Zelda The Wind Waker +- Zelda Wind Waker +- Zelda The Wind Waker +https://www.youtube.com/watch?v=1h9bU-y49-A: +- Hyper Street Fighter II The Anniversary Edition +- Hyper Street Fighter 2 +https://www.youtube.com/watch?v=sPWnlR5PEdQ: +- Call of Duty Advanced Warfare +https://www.youtube.com/watch?v=KF32DRg9opA: +- DuckTales +https://www.youtube.com/watch?v=rWatUe5yOP8: +- Sonic Heroes +https://www.youtube.com/watch?v=OTyghyyX34I: +- Paperboy 2 +https://www.youtube.com/watch?v=bGIP3IUgOg8: +- Super Mario Odyssey +https://www.youtube.com/watch?v=M8gJxIWSxGE: +- Battletoads +https://www.youtube.com/watch?v=btgi3TPL3AE: +- Castlevania +https://www.youtube.com/watch?v=rct233J9lsE: +- Dead Rising 2 Off The Record +- Dead Rising 2 +https://www.youtube.com/watch?v=Bz-QyMQDg_8: +- Life is Strange +https://www.youtube.com/watch?v=l2ETBzOAsV0: +- Sonic Forces +https://www.youtube.com/watch?v=6xzRa1EtOaw: +- Mario Strikers Charged +https://www.youtube.com/watch?v=6QpG48UEcI4: +- Fruit Ninja +https://www.youtube.com/watch?v=4n6WP9qHyRM: +- World of Warcraft +https://www.youtube.com/watch?v=R0cia14N9no: +- League of Legends +https://www.youtube.com/watch?v=iiNyQD5Yq3E: +- Star Wars Republic Commando +https://www.youtube.com/watch?v=nJ3o3kQZWm8: +- Parappa the Rapper +https://www.youtube.com/watch?v=2aV-ej4gwJU: +- Destiny 2 +https://www.youtube.com/watch?v=eCwzdl2q6Ho: +- King of Fighters XIII +- King of Fighters 13 +https://www.youtube.com/watch?v=PLDyWLbuptQ: +- Undertale +https://www.youtube.com/watch?v=3EdeEKDxhPE: +- Halo 3 +https://www.youtube.com/watch?v=em_oGE5Ht2Y: +- Resident Evil +https://www.youtube.com/watch?v=bQYuuUN7pSY: +- Mario Sports Mix +https://www.youtube.com/watch?v=cHJLdF2WNxI: +- World of Warcraft +https://www.youtube.com/watch?v=EXAb0Df3Rpc: +- Clannad +https://www.youtube.com/watch?v=LeeD7lWh2RE: +- Super Smash Bros Ultimate +https://www.youtube.com/watch?v=nJa7hJEfdww: +- Witcher 3 +https://www.youtube.com/watch?v=-cg5QXLS4nc: +- Cuphead +https://www.youtube.com/watch?v=8eDRM-YzpIs: +- Mario Sports Mix +https://www.youtube.com/watch?v=sunu9ShZ4xs: +- Mortal Kombat Armageddon +https://www.youtube.com/watch?v=n25nqibaIDg: +- Super Smash Bros Ultimate +https://www.youtube.com/watch?v=8KT7jcB72fQ: +- Donkey Kong 64 +https://www.youtube.com/watch?v=QCQ3DpI5hHk: +- Plants Vs Zombies +https://www.youtube.com/watch?v=Ze3G5EksIQw: +- The Stanley Parable +- Stanley Parable +https://www.youtube.com/watch?v=9pPQnhhUqtU: +- Total Distortion +https://www.youtube.com/watch?v=WSig9qC9tWE: +- Pokemon Sword and Shield +- Pokemon Sword +- Pokemon Shield +https://www.youtube.com/watch?v=5_E_y1AWAfc: +- Undertale +https://www.youtube.com/watch?v=TsfRhKE5iP8: +- Tomb Raider +https://www.youtube.com/watch?v=n5mo2zPBl3k: +- Middle Earth Shadow of Modor +- Shadow of Modor +https://www.youtube.com/watch?v=Z2g-xpGOusI: +- Tom Clancys The Division +- The Division +https://www.youtube.com/watch?v=S5DFhaprlRM: +- Super Smash Bros +https://www.youtube.com/watch?v=mtfsZv_wr98: +- Tekken +https://www.youtube.com/watch?v=Y8V_MvH8y8U: +- Fallout New Vegas +https://www.youtube.com/watch?v=4eGCH6tAycE: +- Xenoblade 2 +https://www.youtube.com/watch?v=HwJgHF0xDbU: +- Street Fighter V +- Street Fighter 5 +https://www.youtube.com/watch?v=taNV00DWLq8: +- ARMS +https://www.youtube.com/watch?v=9XzAPa4ji7M: +- Punch-Out!! +- Punch Out +- Punch-Out +https://www.youtube.com/watch?v=el_r5y_AcrE: +- Super Mario Sunshine +https://www.youtube.com/watch?v=7dRVuXYmB1M: +- Deltarune +https://www.youtube.com/watch?v=E_KMghGlDY8: +- Nintendo 3DS Music StreetPass Mii Plaza +- Nintendo 3DS +- StreetPass +- Mii Plaza +https://www.youtube.com/watch?v=QJbYjj5cNqQ: +- Wolfenstein The New Order +https://www.youtube.com/watch?v=qHpKdriwcOg: +- Kingdom Hearts +https://www.youtube.com/watch?v=jxMzCya8pQM: +- Payday 2 +https://www.youtube.com/watch?v=LQdUAMrcEnw: +- Farcry 5 +https://www.youtube.com/watch?v=r5Q4FOSPSx0: +- The Witcher 2 Assasins of Kings +- The Witcher 2 +https://www.youtube.com/watch?v=hU3K2a4uXxs: +- Sonic Unleashed +https://www.youtube.com/watch?v=2UKw9aheG3Y: +- Mafia 2 +https://www.youtube.com/watch?v=YTy9v9a7Tmo: +- Undertale +https://www.youtube.com/watch?v=rU_im8hx2TI: +- Earthbound +https://www.youtube.com/watch?v=sIL2fuxlMkc: +- Super Mario Galaxy +https://www.youtube.com/watch?v=-KBLgp5_smc: +- Mortal Kombat 9 +https://www.youtube.com/watch?v=Nsps0I58yUM: +- Dark Souls +https://www.youtube.com/watch?v=RjLWGyx4zoA: +- Persona 5 +https://www.youtube.com/watch?v=XXNVnq1r3yY: +- Castlevania Harmony of Despair +https://www.youtube.com/watch?v=6qIjHtI3kGU: +- Far Cry 5 +https://www.youtube.com/watch?v=3FRJU4DGZSc: +- Red Dead Redemption 2 +https://www.youtube.com/watch?v=zKYmW19Sk8s: +- Sekiro +https://www.youtube.com/watch?v=NYoP3_p2-N8: +- Super Mario 3D Land +https://www.youtube.com/watch?v=XnV_wHQ01dU: +- Cuphead +https://www.youtube.com/watch?v=MXAHCZXaoy8: +- Pokémon Red/Blue/Yellow +- Pokémon Red +- Pokemon Red +- Pokémon Blue +- Pokemon Blue +- Pokémon Yellow +- Pokemon Yellow +https://www.youtube.com/watch?v=56xw3mryadY: +- Mega Man 11 +https://www.youtube.com/watch?v=1K1rV9kFs6I: +- Sonic 3 +https://www.youtube.com/watch?v=7RiHmQcHa84: +- Shin Megami Tensei III Nocturne +- Shin Megami Tensei 3 Nocturne +- Shin Megami Tensei 3 +https://www.youtube.com/watch?v=aPGwniiEfIk: +- Escape from Mars Starring Taz +- Taz in Escape from Mars +- Escape from Mars +https://www.youtube.com/watch?v=kZnS_HxSdvo: +- Nintendo 3DS Find Mii +- Find Mii +https://www.youtube.com/watch?v=JEj_8VkTHVw: +- Mario + Rabbids Kingdom Battle +- Mario and Rabbids Kingdom Battle +https://www.youtube.com/watch?v=n8yKpcyU0fg: +- Hot Wheels Beat That +https://www.youtube.com/watch?v=cIKpAjB5B00: +- Super Hero Squad Online +https://www.youtube.com/watch?v=dYvvKyYIc5s: +- Touhou Embodiment of Scarlet Devil +- Touhou EoSD +- Embodiment of Scarlet Devil +https://www.youtube.com/watch?v=0BkHICB4eJs: +- Half Life +https://www.youtube.com/watch?v=dqwjST3UYcc: +- Mass Effect +https://www.youtube.com/watch?v=WQJxqXo8_cY: +- Tom Clancys Rainbow Six Siege +- Rainbow Six Siege +- R6 Siege +https://www.youtube.com/watch?v=4xbXFcadgy0: +- For Honor +https://www.youtube.com/watch?v=MJrZKCZ2pqo: +- Mario Kart Wii +https://www.youtube.com/watch?v=GgbXr4rN4D4: +- Banjo-Kazooie +- Banjo Kazooi +https://www.youtube.com/watch?v=oL5fbozc3kU: +- Yoshi's Island +- Yoshis Island +https://www.youtube.com/watch?v=DMDYpRaUvIQ: +- Sonic R +https://www.youtube.com/watch?v=oOMy4AZTPLc: +- Metropolis Street Racer +https://www.youtube.com/watch?v=Zf2qOWmKiz0: +- Deltarune +https://www.youtube.com/watch?v=6jFaoLrLzd4: +- Persona 3 +https://www.youtube.com/watch?v=UKYXOobaceQ: +- Sonic 3D Blast +https://www.youtube.com/watch?v=R9awS7E0jDc: +- Donkey Konga +https://www.youtube.com/watch?v=-VhWTfHZBOI: +- Contrast +https://www.youtube.com/watch?v=6QaH6tOXHek: +- Miitomo +https://www.youtube.com/watch?v=-GK41pLUuP0: +- New Super Mario Bros +https://www.youtube.com/watch?v=xjUHMsAZti4: +- Earthbound +https://www.youtube.com/watch?v=y4y13vnGXec: +- Psycho Soldier +https://www.youtube.com/watch?v=sEhg1qAmWMg: +- Codename Kids Next Door Operation V.I.D.E.O.G.A.M.E. +- Codename KND Operation VIDEOGAME +- Codename Kids Next Door Operation VIDEOGAME +- Codename Kids Next Door +https://www.youtube.com/watch?v=TAQVE2e3u8o: +- Power Rangers +https://www.youtube.com/watch?v=NRcsLULM2ns: +- Happy Wheels +https://www.youtube.com/watch?v=pU_zIsgnb3w: +- Hitman Blood Money +https://www.youtube.com/watch?v=ZXX8f0JcSG4: +- Pokémon Black & White +- Pokemon Black and White +- Pokemon Black +- Pokemon White +https://www.youtube.com/watch?v=AWkOMVUJ7gs: +- Fire Emblem Fates Condemnation +- Fire Emblem Fates +https://www.youtube.com/watch?v=QyPR77rg1to: +- Undertale +https://www.youtube.com/watch?v=sxJ-LSBfrQ4: +- Splatoon 2 +https://www.youtube.com/watch?v=RZVyHH-voR8: +- Dark Souls +https://www.youtube.com/watch?v=nWfRO1yxaXs: +- Wario world +- Warioworld +https://www.youtube.com/watch?v=bMF_PRSXbXk: +- Half-Life Opposing Force +https://www.youtube.com/watch?v=XVpC7Tg-hH4: +- Dreams +https://www.youtube.com/watch?v=EkLvDaWNez8: +- New Super Mario Bros +https://www.youtube.com/watch?v=7LvsWVE9-es: +- Pokémon X & Y +- Pokemon X +- Pokemon Y +https://www.youtube.com/watch?v=iAWXT2HJFTI: +- The Legend of Zelda Breath of the Wild +- Breath of the Wild +- Zelda Botw +https://www.youtube.com/watch?v=JZw9wWmcXH4: +- Super Smash Bros Brawl +https://www.youtube.com/watch?v=XJsy5jJ7Dp0: +- Trauma Center Under the Knife 2 +- Trauma Center 2 +- Trauma Center Under the Knife +https://www.youtube.com/watch?v=gd22rCkvJoA: +- Assassin's Creed 4 Black Flag +- Assasins Creed 4 +- Assasins Creed Black Flag +https://www.youtube.com/watch?v=ECE7ZeDsuPk: +- Destiny 2 +https://www.youtube.com/watch?v=v0nlnUDKT1s: +- Fallout 4 +https://www.youtube.com/watch?v=zgLgSQPN0Gw: +- Super Mario Party +https://www.youtube.com/watch?v=Ib3FTf3Frbo: +- Fire Emblem Three Houses +- Super Smash Bros Ultimate +https://www.youtube.com/watch?v=LG0-UMOljBU: +- Pokémon Gold/Silver/Crystal +- Pokemon Gold +- Pokemon Silver +- Pokemon Crystal +https://www.youtube.com/watch?v=0cuhPPuTA3s: +- Saints Row The Third +https://www.youtube.com/watch?v=1scgMvQoLVg: +- Tomodachi Life +https://www.youtube.com/watch?v=D8ShsHeYkeI: +- Dark Souls 2 +https://www.youtube.com/watch?v=BG-0WXsZR-A: +- Marvel vs Capcom 2 +https://www.youtube.com/watch?v=NPjLgDF1hUg: +- The Legend of Zelda Ocarina of Time +- Zelda Ocarina of Time +https://www.youtube.com/watch?v=upPtP_qtQHM: +- Super Paper Mario +https://www.youtube.com/watch?v=5xk8-dDqu50: +- Luigi's Mansion +- Luigis Mansion +https://www.youtube.com/watch?v=zop1cFVz1So: +- Killzone +https://www.youtube.com/watch?v=WLLE_PvJ5mY: +- Metroid Prime +https://www.youtube.com/watch?v=oMed0AQt6g4: +- Mass Effect +https://www.youtube.com/watch?v=S7NuuyVIYO8: +- Hitman +https://www.youtube.com/watch?v=ENWDVA0Xz88: +- Crackdown +https://www.youtube.com/watch?v=dQNAVqW1shA: +- Banjo-Kazooie +- Banjo Kazooie +https://www.youtube.com/watch?v=tnzziAe9tYA: +- Super Mario Galaxy 2 +https://www.youtube.com/watch?v=Ma7mdIHy-kA: +- Sonic Forces +https://www.youtube.com/watch?v=avyasO9uqfo: +- Donkey Kong Country +https://www.youtube.com/watch?v=i6v6w0mbPvU: +- A Hat in Time Music +https://www.youtube.com/watch?v=Df1nqnxRe7g: +- Left 4 Dead 2 +https://www.youtube.com/watch?v=QunjkirEY_g: +- Fire Emblem Fates +https://www.youtube.com/watch?v=-9bcB4_adYo: +- Crysis +https://www.youtube.com/watch?v=QMEqfXYjyvM: +- Deadspace +https://www.youtube.com/watch?v=a75SxyVBvKU: +- Half-Life 2 +- Half Life 2 +https://www.youtube.com/watch?v=5h1t94LxGd0: +- The Witcher 2 Assasins of Kings +- The Witcher 2 +https://www.youtube.com/watch?v=Eoo5oifOsUs: +- DayZ +https://www.youtube.com/watch?v=24ijaaCSrYM: +- For Honor +https://www.youtube.com/watch?v=sGjdjdyt5s4: +- Kirby Planet Robobot +https://www.youtube.com/watch?v=oA6kuCUmBpo: +- Captain Toad Treasure Tracker +https://www.youtube.com/watch?v=x9dJrEvHk3o: +- Mario & Sonic at the London 2012 Olympic Games +- Mario and Sonic at the London 2012 Olympic Games +https://www.youtube.com/watch?v=DheEtF1G_Rs: +- Splatoon 2 +https://www.youtube.com/watch?v=TcufdwbnF0k: +- Rhythm Heaven Fever +https://www.youtube.com/watch?v=4GChwuX81o4: +- Grabbed by the Ghoulies +https://www.youtube.com/watch?v=PhWge4ro354: +- Call of Duty Black Ops 2 +- Black Ops 2 +https://www.youtube.com/watch?v=bzbWrGr_of0: +- The Legend of Zelda Majora's Mask +- Zelda Majora's Mask +- Zelda Majoras Mask +https://www.youtube.com/watch?v=2RKnfOAI1A0: +- 3D Dot Game Heroes +https://www.youtube.com/watch?v=L2f5v1w_v8g: +- Conker Live & Reloaded +- Conker Live and Reloaded +https://www.youtube.com/watch?v=nVRQJ2i59XE: +- Wii Sports +https://www.youtube.com/watch?v=JDqJa1RC3q8: +- Kid Icarus Uprising +https://www.youtube.com/watch?v=Jq6oRi6UTXY: +- Sonic the Hedgehog 3 +https://www.youtube.com/watch?v=JzzJwrIN6Mc: +- Mega Man 3 +https://www.youtube.com/watch?v=s1AkaZuRaM4: +- Sonic Dash +https://www.youtube.com/watch?v=7S7WEkopK8k: +- Dance Dance Revolution Mario Mix +- Dance Dance Revolution Mario +https://www.youtube.com/watch?v=KVwdKcwWe2k: +- Yooka-Laylee Music +- Yooka Laylee +https://www.youtube.com/watch?v=ZdBO_V-guJ4: +- Call of Duty Modern Warfare +- Modern Warfare +https://www.youtube.com/watch?v=NQIeAbFT4Kc: +- League of Legends +https://www.youtube.com/watch?v=cnAoE7tcrBI: +- Max Payne +https://www.youtube.com/watch?v=pYf0C4Yh8pE: +- Apex Legends +https://www.youtube.com/watch?v=0W-trrXXcS8: +- Far Cry New Dawn +https://www.youtube.com/watch?v=jv249KSsjcM: +- Red Dead Redemption 2 +https://www.youtube.com/watch?v=z5JhMEP0GSU: +- Mario Party The Top 100 +- Mario Party Top 100 +https://www.youtube.com/watch?v=3nxFYoGNJKc: +- Banjo-Kazooie +- Banjo Kazooie +https://www.youtube.com/watch?v=6vICKfFo6bU: +- Wii Fit +https://www.youtube.com/watch?v=EJCq_hnFZyk: +- Fire Emblem Three Houses +https://www.youtube.com/watch?v=bXM7CvKCSx0: +- GTA San Andreas +- Grand Theft Auto San Andreas +https://www.youtube.com/watch?v=5YjGmTI_fPU: +- Bayonetta +https://www.youtube.com/watch?v=5wApmRF5gyM: +- Super Mario Bros 3 +https://www.youtube.com/watch?v=kRMTqfxkCsc: +- Mortal Kombat Deadly Alliance +https://www.youtube.com/watch?v=Ljqe4Nj7nBA: +- The Legend of Zelda Ocarina of Time +- Zelda Ocarina of Time +https://www.youtube.com/watch?v=RB4nFoA63rs: +- Gravity Rush +https://www.youtube.com/watch?v=UsaoAl5EIH8: +- Punch-Out!! +- Punch Out +- Punch-Out +https://www.youtube.com/watch?v=rMudHClToL0: +- Donkey Kong Country Tropical Freeze +- Donkey Kong Tropical Freeze +https://www.youtube.com/watch?v=iT8T-dBwztg: +- FlingSmash +https://www.youtube.com/watch?v=dcp5gPf7mhI: +- Jet Set Radio Future +https://www.youtube.com/watch?v=sC0cvwnG0Ik: +- Crazy Bus +https://www.youtube.com/watch?v=KJfMS5XzmIc: +- Animal Crossing New Horizons +https://www.youtube.com/watch?v=HAYPkVeWjXM: +- Halo 5 Guardians +https://www.youtube.com/watch?v=ozLqx3EboU4: +- Shantae Half-Genie Hero +- Shantae Half Genie Hero +- 'Shantae 1/2 Genie Hero' +https://www.youtube.com/watch?v=e2Gyaqf7EoU: +- Persona 3 +https://www.youtube.com/watch?v=KC5kHf58GMI: +- The Legend of Zelda Skyward Sword +- Skyward Sword +https://www.youtube.com/watch?v=XHzlfCpmqsw: +- Super Mario Kart +https://www.youtube.com/watch?v=6l1HUDuzyrk: +- Sonic Lost World +https://www.youtube.com/watch?v=512pcIZOjm0: +- Xenoblade Chronicles +https://www.youtube.com/watch?v=7ePFxuu9lik: +- The Walking Dead Game +- The Walking Dead +https://www.youtube.com/watch?v=rgq0wF_ByO8: +- Contrast +https://www.youtube.com/watch?v=O7eGxoFLOI4: +- Mario Kart Double Dash!! +- Mario Kart Double Dash +https://www.youtube.com/watch?v=6ppBSY92rzg: +- EarthBound +https://www.youtube.com/watch?v=mmiWjG0N21w: +- Kingdom Hearts +https://www.youtube.com/watch?v=kNlVo5udnPs: +- Team Fortress 2 +https://www.youtube.com/watch?v=-t_C-CgJ-3A: +- Pokemon Sun & Moon +- Pokemon Sun +- Pokemon Moon +https://www.youtube.com/watch?v=7G_aaak-tDE: +- The Legend of Zelda Majora's Mask +- Zelda Majora's Mask +- Zelda Majoras Mask +https://www.youtube.com/watch?v=rGFic2e-uTE: +- Kirby's Epic Yarn +- Kirbys Epic Yarn +https://www.youtube.com/watch?v=1Cfin7GJUGI: +- Mario vs Donkey Kong 2 March of the Minis +- Mario vs Donkey Kong 2 +https://www.youtube.com/watch?v=gtKxgf_lETg: +- Rhythm Heaven Fever +https://www.youtube.com/watch?v=xnmxhE9usbI: +- Animal Crossing +https://www.youtube.com/watch?v=kwQ6_rwvMp8: +- ARMS +https://www.youtube.com/watch?v=2odP8HQuPgs: +- Nintendogs +https://www.youtube.com/watch?v=9ICz9BArKiM: +- Splatoon 2 +https://www.youtube.com/watch?v=IeosKeE1psE: +- Super Street Fighter IV +- Super Street Fighter 4 +https://www.youtube.com/watch?v=P9lLD_hgbU4: +- Bayonetta +https://www.youtube.com/watch?v=QTRsbrFWomM: +- Fire Emblem Fates +https://www.youtube.com/watch?v=zwOnn-ObtNo: +- Chibi-Robo! +- Chibi-Robo +- Chibi Robo +https://www.youtube.com/watch?v=5FYneJvqtMc: +- Lego Dimensions +https://www.youtube.com/watch?v=jkk6f817nNU: +- Xenoblade Chronicles +https://www.youtube.com/watch?v=N8OHSXvneOE: +- Celeste +https://www.youtube.com/watch?v=ryAv7ESrJtQ: +- Half Life 2 +https://www.youtube.com/watch?v=vkailb3xcTI: +- Super Mario RPG +https://www.youtube.com/watch?v=MOkWNuGfCD0: +- Pokémon X & Y +- Pokemon X +- Pokemon Y +https://www.youtube.com/watch?v=JUYAX3z2JYc: +- Call of Duty Black Ops 2 +- Black Ops 2 +https://www.youtube.com/watch?v=kfo7hmy-qso: +- Bomberman Hero +https://www.youtube.com/watch?v=myxM9Q72hxE: +- NES Remix Pack +https://www.youtube.com/watch?v=PbYoMpwHq5c: +- Wii Play +https://www.youtube.com/watch?v=-NuIPxOmpmc: +- Star Fox +https://www.youtube.com/watch?v=Ga9wY3CzEJQ: +- Gex Enter the Gecko +- Gex +https://www.youtube.com/watch?v=mpqct1zMqTE: +- Killer Instinct S1 +- Killer Instinct +https://www.youtube.com/watch?v=g3jCAyPai2Y: +- Yakuza +https://www.youtube.com/watch?v=4GfXKM-2nak: +- Paper Mario The Origami King +https://www.youtube.com/watch?v=6rW52ajkrZ0: +- Street Fighter V +- Street Fighter 5 +https://www.youtube.com/watch?v=zLs96hgloOA: +- Sekiro +https://www.youtube.com/watch?v=qG_lzlLH3UU: +- Titanfall +https://www.youtube.com/watch?v=U8ilLSEjlAQ: +- Destiny 2 +https://www.youtube.com/watch?v=QFaZC_R3WoE: +- Resident Evil 3 +https://www.youtube.com/watch?v=1fmhHRNzZLo: +- Gears Of War +https://www.youtube.com/watch?v=Oc44myRhNRM: +- Pokemon Omega Ruby/Alpha Sapphire +- Pokemon Omega Ruby +- Pokemon Alpha Sapphire +https://www.youtube.com/watch?v=vNVz6N-bNZs: +- Sonic Adventure +https://www.youtube.com/watch?v=WcabIuZOWYY: +- DragonBall Xenoverse 2 +https://www.youtube.com/watch?v=GmpB0btoC6M: +- Yoshi's Cookie +- Yoshis Cookie +https://www.youtube.com/watch?v=KC-B3Q0cRrY: +- Streets Of Rage 2 +https://www.youtube.com/watch?v=DekKId4f-Yk: +- Super Mario 3D World +https://www.youtube.com/watch?v=xorWgC8vf3I: +- Fallout 3 +https://www.youtube.com/watch?v=X9Q4Zg1tYno: +- Super Smash Bros Wii U +https://www.youtube.com/watch?v=llOvd2yGEio: +- Team Fortress 2 +https://www.youtube.com/watch?v=RR_ifniLcW4: +- Donkey Kong Country 2 Diddy's Kong Quest +- Donkey Kong Country 2 +- Diddys Kong Quest +https://www.youtube.com/watch?v=NoBRdekWKxI: +- The Legend of Zelda Twilight Princess +- Twilight Princess +https://www.youtube.com/watch?v=rpocm85Hauc: +- Crash Tag Team Racing +https://www.youtube.com/watch?v=-4FvqXfQYbk: +- Dragon Ball FighterZ +https://www.youtube.com/watch?v=xgcyH9I1NBE: +- Sonic Adventure +https://www.youtube.com/watch?v=gESYyh_tsGA: +- Halo Infinite +https://www.youtube.com/watch?v=fXWCotTeNgk: +- Donkey Kong 64 +https://www.youtube.com/watch?v=tWBKtLiYe5w: +- Persona 4 Dancing All Night +- Persona 4 +https://www.youtube.com/watch?v=pQ-bjZD1EnI: +- Sonic Heroes +https://www.youtube.com/watch?v=4S9qb1jZGlA: +- Ghost of Tsushima +https://www.youtube.com/watch?v=v1M8VVDFxgo: +- Celeste +https://www.youtube.com/watch?v=ROBc_MVW-Lg: +- Fall Guys Ultimate Knockout +- Fall Guys +https://www.youtube.com/watch?v=r5EjvtyLJ1g: +- Sonic the Hedgehog CD +- Sonic CD +https://www.youtube.com/watch?v=JRPXRHS4XNQ: +- Battletoads +https://www.youtube.com/watch?v=hHKmORyO8WA: +- Mario Super Sluggers +https://www.youtube.com/watch?v=oeEiOtndLB0: +- Crusader Kings 2 +https://www.youtube.com/watch?v=TKvjEQXKeec: +- Earthbound +https://www.youtube.com/watch?v=m65ns26m9IE: +- A Hat in Time +https://www.youtube.com/watch?v=feM7-QL9x38: +- Bomberman Max 2 +https://www.youtube.com/watch?v=EGeoG0KQa68: +- Mappy Arcade +- Mappy +https://www.youtube.com/watch?v=ySYwqTKRtgQ: +- Mega Man 2 +https://www.youtube.com/watch?v=VCCZe8S5miY: +- Pac-Man World +- Pac Man World +https://www.youtube.com/watch?v=g-aNgman8Wo: +- Street Fighter 5 +https://www.youtube.com/watch?v=U1_PStq_tTM: +- Watch Dogs +https://www.youtube.com/watch?v=vLljFmx7yF8: +- Counter-Strike Global Offensive +- CS GO +- CSGO +- Counter Strike GO +- Counter Strike Global Offensive +https://www.youtube.com/watch?v=gsZJg5mmsHA: +- The Angry Video Game Nerd Adventures +- Angry Video Game Nerd Adventures +https://www.youtube.com/watch?v=n3c2xbYWKY0: +- Double Dragon +https://www.youtube.com/watch?v=JNEKqu6Pe48: +- Pac Man Party +- Pac-Man Party +https://www.youtube.com/watch?v=sEFIZh_Zscc: +- Bioshock +https://www.youtube.com/watch?v=fmU9MXi9Uz0: +- Under Night In-Birth +- Under Night In Birth +https://www.youtube.com/watch?v=EzDLLILqvLU: +- Asura's Wrath +- Asuras Wrath From b9d8be397c04053d3542c2acc8e5b5f30fd9c4ca Mon Sep 17 00:00:00 2001 From: bobloy Date: Mon, 28 Sep 2020 09:50:43 -0400 Subject: [PATCH 17/22] Add workflow labeler --- .github/labeler.yml | 62 +++++++++++++++++++++++++++++++++++ .github/workflows/labeler.yml | 0 2 files changed, 62 insertions(+) create mode 100644 .github/labeler.yml create mode 100644 .github/workflows/labeler.yml diff --git a/.github/labeler.yml b/.github/labeler.yml new file mode 100644 index 0000000..dd944c8 --- /dev/null +++ b/.github/labeler.yml @@ -0,0 +1,62 @@ +'cog: announcedaily': + - announcedaily/* +'cog: audiotrivia': + - audiotrivia/* +'cog: ccrole': + - ccrole/* +'cog: chatter': + - chatter/* +'cog: conquest': + - conquest/* +'cog: dad': + - dad/* +'cog: exclusiverole': + - exclusiverole/* +'cog: fifo': + - fifo/* +'cog: firstmessage': + - firstmessage/* +'cog: flag': + - flag/* +'cog: forcemention': + - forcemention/* +'cog: hangman': + - hangman +'cog: infochannel': + - infochannel/* +'cog: isitdown': + - isitdown/* +'cog: launchlib': + - launchlib/* +'cog: leaver': + - leaver/* +'cog: lovecalculator': + - lovecalculator/* +'cog: lseen': + - lseen/* +'cog: nudity': + - nudity/* +'cog: planttycoon': + - planttycoon/* +'cog: qrinvite': + - qrinvite/* +'cog: reactrestrict': + - reactrestrict/* +'cog: recyclingplant': + - recyclingplant/* +'cog: rpsls': + - rpsls/* +'cog: sayurl': + - sayurl/* +'cog: scp': + - scp/* +'cog: stealemoji': + - stealemoji/* +'cog: timerole': + - timerole/* +'cog: tts': + - tts/* +'cog: unicode': + - unicode/* +'cog: werewolf': + - werewolf \ No newline at end of file diff --git a/.github/workflows/labeler.yml b/.github/workflows/labeler.yml new file mode 100644 index 0000000..e69de29 From ad66d171d4035dc17794b346563a87d5f806d61e Mon Sep 17 00:00:00 2001 From: bobloy Date: Mon, 28 Sep 2020 09:52:17 -0400 Subject: [PATCH 18/22] Forgot the contents --- .github/workflows/labeler.yml | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/.github/workflows/labeler.yml b/.github/workflows/labeler.yml index e69de29..7c724a6 100644 --- a/.github/workflows/labeler.yml +++ b/.github/workflows/labeler.yml @@ -0,0 +1,19 @@ +# This workflow will triage pull requests and apply a label based on the +# paths that are modified in the pull request. +# +# To use this workflow, you will need to set up a .github/labeler.yml +# file with configuration. For more information, see: +# https://github.com/actions/labeler + +name: Labeler +on: [pull_request] + +jobs: + label: + + runs-on: ubuntu-latest + + steps: + - uses: actions/labeler@v2 + with: + repo-token: "${{ secrets.GITHUB_TOKEN }}" From af41d079d336426626f7dbfb5c948579fd17781f Mon Sep 17 00:00:00 2001 From: bobloy Date: Mon, 28 Sep 2020 10:52:45 -0400 Subject: [PATCH 19/22] Add black check --- .github/workflows/black_check.yml | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 .github/workflows/black_check.yml diff --git a/.github/workflows/black_check.yml b/.github/workflows/black_check.yml new file mode 100644 index 0000000..ab2a435 --- /dev/null +++ b/.github/workflows/black_check.yml @@ -0,0 +1,20 @@ +# GitHub Action that uses Black to reformat the Python code in an incoming pull request. +# If all Python code in the pull request is compliant with Black then this Action does nothing. +# Othewrwise, Black is run and its changes are committed back to the incoming pull request. +# https://github.com/cclauss/autoblack + +name: autoblack +on: [push, pull_request] +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v1 + - name: Set up Python 3.8 + uses: actions/setup-python@v2 + with: + python-version: '3.8' + - name: Install Black + run: pip install --upgrade --no-cache-dir black + - name: Run black --check . + run: black --check --diff -l 99 . \ No newline at end of file From a36a800b45d105b6f6dced7c250f0e5efeb178f9 Mon Sep 17 00:00:00 2001 From: bobloy Date: Mon, 28 Sep 2020 10:53:00 -0400 Subject: [PATCH 20/22] named black --- .github/workflows/black_check.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/black_check.yml b/.github/workflows/black_check.yml index ab2a435..a36b5f2 100644 --- a/.github/workflows/black_check.yml +++ b/.github/workflows/black_check.yml @@ -3,7 +3,7 @@ # Othewrwise, Black is run and its changes are committed back to the incoming pull request. # https://github.com/cclauss/autoblack -name: autoblack +name: black on: [push, pull_request] jobs: build: From 693964183cce5e8056492a4a4374d560b75fecf3 Mon Sep 17 00:00:00 2001 From: bobloy Date: Mon, 28 Sep 2020 12:45:03 -0400 Subject: [PATCH 21/22] Update issue templates --- .github/ISSUE_TEMPLATE/bug_report.md | 26 +++++++++++++++++++ .github/ISSUE_TEMPLATE/feature_request.md | 14 ++++++++++ .../ISSUE_TEMPLATE/new-audiotrivia-list.md | 26 +++++++++++++++++++ 3 files changed, 66 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/bug_report.md create mode 100644 .github/ISSUE_TEMPLATE/feature_request.md create mode 100644 .github/ISSUE_TEMPLATE/new-audiotrivia-list.md diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000..7a6e260 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,26 @@ +--- +name: Bug report +about: Create an issue to report a bug +title: '' +labels: bug +assignees: bobloy + +--- + +**Describe the bug** + + +**To Reproduce** + +1. Load cog '...' +2. Run command '....' +3. See error + +**Expected behavior** + + +**Screenshots or Error Messages** + + +**Additional context** + diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 0000000..42f5500 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,14 @@ +--- +name: Feature request +about: Suggest an idea for this project +title: "[Feature Request]" +labels: enhancement +assignees: '' + +--- + +**Is your feature request related to a problem? Please describe.** + + +**Describe the solution you'd like** + diff --git a/.github/ISSUE_TEMPLATE/new-audiotrivia-list.md b/.github/ISSUE_TEMPLATE/new-audiotrivia-list.md new file mode 100644 index 0000000..b6be14e --- /dev/null +++ b/.github/ISSUE_TEMPLATE/new-audiotrivia-list.md @@ -0,0 +1,26 @@ +--- +name: New AudioTrivia List +about: Submit a new AudioTrivia list to be added +title: "[AudioTrivia Submission]" +labels: 'cog: audiotrivia' +assignees: bobloy + +--- + +**What is this trivia list?** + + +**Number of Questions** + + +**Original Content?** + + +-[ ] Yes +-[ ] No + + +**Did I test the list?** + +-[ ] Yes +-[ ] No From 94aceb32e8e37681a7d3f9b4b8fd528b639f15d1 Mon Sep 17 00:00:00 2001 From: bobloy Date: Mon, 28 Sep 2020 12:46:10 -0400 Subject: [PATCH 22/22] Update issue templates --- .github/ISSUE_TEMPLATE/new-audiotrivia-list.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/new-audiotrivia-list.md b/.github/ISSUE_TEMPLATE/new-audiotrivia-list.md index b6be14e..25bcc81 100644 --- a/.github/ISSUE_TEMPLATE/new-audiotrivia-list.md +++ b/.github/ISSUE_TEMPLATE/new-audiotrivia-list.md @@ -16,11 +16,11 @@ assignees: bobloy **Original Content?** --[ ] Yes --[ ] No +- [ ] Yes +- [ ] No **Did I test the list?** --[ ] Yes --[ ] No +- [ ] Yes +- [ ] No