diff --git a/lists/referral_domains.txt b/lists/referral_domains.txt index 9479e1c..7cf061e 100644 --- a/lists/referral_domains.txt +++ b/lists/referral_domains.txt @@ -1,147 +1,149 @@ -// Referral Domain List -// This list contains referral sites - -// IP Loggers -2no.co -blasze.com -blasze.tk -gotyouripboi.com -iplogger.com -iplogger.org -iplogger.ru -ps3cfw.com -yip.su - -// Grabify (IP Loggers) -bmwforum.co -bucks.as -cyberh1.xyz -discörd.com -disçordapp.com -fortnight.space -fortnitechat.site -freegiftcards.co -grabify.link -joinmy.site -leancoding.co -minecräft.com -quickmessage.us -särahah.eu -särahah.pl -shört.co -spötify.com -spottyfly.com -starbucks.bio -starbucksisbadforyou.com -starbucksiswrong.com -stopify.co -xda-developers.us -youshouldclick.us -yoütu.be -yoütübe.co -yoütübe.com -youtubeshort.watch - -// Ad sites -adblade.com -adcash.com -adcell.de -adexchangecloud.com -adf.ly -adfoc.us -adforce.com -bc.vc -bitl.cc -btcclicks.com -ceesty.com -cur.lv -fastclick.com -getcryptotab.com -gmads.net -l2s.pet -linkbucks.com -linkshrink.net -miniurl.pw -nitroclicks.com -ouo.io -pay-ads.com -petty.link -pnd.tl -restorecosm.bid -sh.st -short.es -shorte.st -shrtz.me -udmoney.club -uii.io -ur-l.me -vivads.net -xponsor.com -zeusclicks.com -zipansion.com - -// Referral Sites -black-friday.ga -boost.ink -easycommerce.cf -featu.re -free.gg -justdoit.cards -makeprogress.ga -pointsprizes.com -referralpay.co -selly.gg -shoppy.gg -weeklyjob.online -wn.nr - -// NSFW Spam Sites -nakedphotos.club -privatepage.vip -viewc.site - -// Coin Miners -baymack.com -btconline.io -btcpool.io -freebitco.in -minero.cc -outbuck.com - -// Scams -amazingsexdating.com -easter-event.com -ezrobux.gg -fortnite.cards -fortnite.events -fortnite-christmas.com -fortnite-gifts.com -fortnite-giveaway.com -fortnite-special.com -fortnite-vbuck.com -fortnite-vbucks.de -fortnite-vbucks.net -fortnitevb.com -free-gg.com -free-steam-code.com -giveawaybot.pw -libra-sale.io -myetherermwallet.com -oprewards.com -rbxfree.com -roblox-christmas.com -robloxsummer.com -steam-event.com -steam-gift-codes.com -steam-money.org -steam-wallet-rewards.com -steampromote.com -steamquests.com -steamreward.com -steamspecial.com -steamsummer.com -streamcommunnitly.com -whatsappx.com - -// Deceptive Unicode Links -getlⅰbra.tech +// Referral Domain List +// This list contains referral sites + +// IP Loggers +2no.co +blasze.com +blasze.tk +gotyouripboi.com +iplogger.com +iplogger.org +iplogger.ru +ps3cfw.com +yip.su + +// Grabify (IP Loggers) +bmwforum.co +bucks.as +cyberh1.xyz +discörd.com +disçordapp.com +fortnight.space +fortnitechat.site +freegiftcards.co +grabify.link +joinmy.site +leancoding.co +minecräft.com +quickmessage.us +särahah.eu +särahah.pl +shört.co +spötify.com +spottyfly.com +starbucks.bio +starbucksisbadforyou.com +starbucksiswrong.com +stopify.co +xda-developers.us +youshouldclick.us +yoütu.be +yoütübe.co +yoütübe.com +youtubeshort.watch + +// Ad sites +adblade.com +adcash.com +adcell.de +adexchangecloud.com +adf.ly +adfoc.us +adforce.com +bc.vc +bitl.cc +btcclicks.com +ceesty.com +cur.lv +fastclick.com +getcryptotab.com +gmads.net +l2s.pet +linkbucks.com +linkshrink.net +miniurl.pw +nitroclicks.com +ouo.io +pay-ads.com +petty.link +pnd.tl +restorecosm.bid +sh.st +short.es +shorte.st +shrtz.me +udmoney.club +uii.io +ur-l.me +vivads.net +xponsor.com +zeusclicks.com +zipansion.com + +// Referral Sites +black-friday.ga +boost.ink +easycommerce.cf +featu.re +free.gg +justdoit.cards +makeprogress.ga +pointsprizes.com +referralpay.co +selly.gg +shoppy.gg +weeklyjob.online +wn.nr + +// NSFW Spam Sites +nakedphotos.club +privatepage.vip +viewc.site + +// Coin Miners +baymack.com +btconline.io +btcpool.io +freebitco.in +minero.cc +outbuck.com + +// Scams +amazingsexdating.com +csgocyber.ru +easter-event.com +ezrobux.gg +fortnite.cards +fortnite.events +fortnite-christmas.com +fortnite-gifts.com +fortnite-giveaway.com +fortnite-special.com +fortnite-vbuck.com +fortnite-vbucks.de +fortnite-vbucks.net +fortnitevb.com +free-gg.com +free-steam-code.com +giveawaybot.pw +libra-sale.io +myetherermwallet.com +oprewards.com +rbxfree.com +roblox-christmas.com +robloxsummer.com +steam-event.com +steam-gift-codes.com +steam-money.org +steam-wallet-rewards.com +steampromote.com +steamquests.com +steamreward.com +steamspecial.com +steamsummer.com +streamcommunnitly.com +streancommunuty.ru +whatsappx.com + +// Deceptive Unicode Links +getlⅰbra.tech diff --git a/src/main/java/com/jagrosh/vortex/automod/URLResolver.java b/src/main/java/com/jagrosh/vortex/automod/URLResolver.java index 650c038..74c7d19 100644 --- a/src/main/java/com/jagrosh/vortex/automod/URLResolver.java +++ b/src/main/java/com/jagrosh/vortex/automod/URLResolver.java @@ -73,9 +73,10 @@ return cache.get(url); try { - List resolved = resolve(client - .newCall(request.post(new FormBody.Builder().add(form, url).build()).build()) - .execute().body().string()); + String resp = client + .newCall(request.post(new FormBody.Builder().add(form, url).add("f", "true").build()).build()) + .execute().body().string(); + List resolved = resolve(resp); cache.put(url, resolved); System.out.println("Link Resolving: "+url+" -> "+resolved); return resolved; @@ -89,7 +90,6 @@ private List resolve(String text) { List list = new LinkedList<>(); - boolean skip = true; // first link is always the link we gave for(int i=0; i vortex.getDatabase().settings.getSettings(guild).getServerLogChannel(guild)) .filter(tc -> tc!=null) .forEachOrdered(tc -> @@ -223,7 +224,7 @@ public void logNameChange(UserUpdateDiscriminatorEvent event) { OffsetDateTime now = OffsetDateTime.now(); - event.getUser().getMutualGuilds().stream() + vortex.getShardManager().getMutualGuilds(event.getUser().getIdLong()).stream() .map(guild -> vortex.getDatabase().settings.getSettings(guild).getServerLogChannel(guild)) .filter(tc -> tc!=null) .forEachOrdered(tc -> diff --git a/src/main/java/com/jagrosh/vortex/utils/ConditionalEventManager.java b/src/main/java/com/jagrosh/vortex/utils/ConditionalEventManager.java index 5101300..c08ac70 100644 --- a/src/main/java/com/jagrosh/vortex/utils/ConditionalEventManager.java +++ b/src/main/java/com/jagrosh/vortex/utils/ConditionalEventManager.java @@ -19,6 +19,7 @@ import java.util.List; import net.dv8tion.jda.api.entities.Guild; import net.dv8tion.jda.api.events.GenericEvent; +import net.dv8tion.jda.api.events.user.update.GenericUserUpdateEvent; import net.dv8tion.jda.api.hooks.InterfacedEventManager; import net.dv8tion.jda.api.sharding.ShardManager; @@ -74,6 +75,22 @@ } } + // for user updates, only use the event of the first shard manager + if(ge instanceof GenericUserUpdateEvent) + { + for(ShardManager bot: getOrderedShardManagers()) + { + if(bot.getShards().get(0).getSelfUser().getIdLong() == selfId) + { + break; + } + if(bot.getUserById(((GenericUserUpdateEvent)ge).getUser().getIdLong()) != null) + { + return; + } + } + } + // otherwise, continue as normal super.handle(ge); } diff --git a/src/main/java/com/jagrosh/vortex/utils/MultiBotManager.java b/src/main/java/com/jagrosh/vortex/utils/MultiBotManager.java index 927f30b..bfb7aa5 100644 --- a/src/main/java/com/jagrosh/vortex/utils/MultiBotManager.java +++ b/src/main/java/com/jagrosh/vortex/utils/MultiBotManager.java @@ -15,10 +15,7 @@ */ package com.jagrosh.vortex.utils; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.List; +import java.util.*; import java.util.stream.Collectors; import javax.security.auth.login.LoginException; import net.dv8tion.jda.api.OnlineStatus; @@ -99,6 +96,24 @@ return null; } + public Collection getMutualGuilds(long userId) + { + HashMap guilds = new HashMap<>(); + for(ShardManager shards: bots) + for(Guild guild: getMutualGuilds(shards, userId)) + if(!guilds.containsKey(guild.getIdLong())) + guilds.put(guild.getIdLong(), guild); + return guilds.values(); + } + + private static Collection getMutualGuilds(ShardManager shard, long userId) + { + User user = shard.getUserById(userId); + if(user == null) + return Collections.emptySet(); + return shard.getMutualGuilds(user); + } + private class MultiBotEventManager extends ConditionalEventManager { @Override diff --git a/src/test/java/com/jagrosh/vortex/RedirectTest.java b/src/test/java/com/jagrosh/vortex/RedirectTest.java new file mode 100644 index 0000000..42370f0 --- /dev/null +++ b/src/test/java/com/jagrosh/vortex/RedirectTest.java @@ -0,0 +1,44 @@ +/* + * Copyright 2021 John Grosh (john.a.grosh@gmail.com). + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.jagrosh.vortex; + +import com.jagrosh.vortex.automod.URLResolver; +import com.typesafe.config.ConfigFactory; +import java.util.List; +import org.junit.Test; +import static org.junit.Assert.*; + +/** + * + * @author John Grosh (john.a.grosh@gmail.com) + */ +public class RedirectTest +{ + @Test + public void redirectTest() + { + URLResolver resolver = new URLResolver.ActiveURLResolver(ConfigFactory.load()); + List redir1 = resolver.findRedirects("https://tinyurl.com/yggtreehouse"); + System.out.println(redir1); + assertFalse(redir1.isEmpty()); + List redir2 = resolver.findRedirects("https://bit.ly/3xmJMoU"); + System.out.println(redir2); + assertFalse(redir2.isEmpty()); + List redir3 = resolver.findRedirects("https://shorturl.at/gyG16"); + System.out.println(redir3); + assertFalse(redir3.isEmpty()); + } +}