Example #1
0
 def checkPayloads(self,payload,pagesources,logs,url):
     #检测到存在漏洞需要停止该参数的扫描,但是目前的实现逻辑,是扫描完后判断是否存在注入
     if(payload['type'] == 'console'):#如果type=console,则检测logs
         checkdata = payload['verify']
         for log in logs:
             if(checkdata == log):
                 file = FileOperation.FileOperaton()
                 file.writeDomxssurl(url,payload)
                 print("【domxss】%s:%s" % (url,payload))
                 break
     #检测dom节点变化
     if(payload['type'] == 'domtag'):
         domtag = payload['verify']
         for pagesource in pagesources:
             try:
                 parse = BeautifulSoup(pagesource,'html.parser')
                 domtags = parse.find_all(domtag)
                 if len(domtags) > 0:
                     file = FileOperation.FileOperaton()
                     file.writeDomxssurl(url,payload)
                     print("【domxss】%s:%s" % (url,payload))
                     break
             except:
                 print("【error】html parse解析失败")
                 continue    
     if(payload['type'] == 'textplain'):
         checkplain = payload['verify']
         for pagesource in pagesources:
             if pagesource.find(checkplain) != -1 :
                 file = FileOperation.FileOperaton()
                 file.writeDomxssurl(url,payload)
                 print("【domxss】%s:%s" % (url,payload))
                 break
Example #2
0
def get_sina_vote_scale_url():
    parse = web_page_download("http://sports.sina.com.cn/iframe/lottery/sfc/iframe_index.html")
    if not parse:
        return ""
    links = parse.find_all("a")
    for link in links:
        text = link.get_text()
        if text == "火线伤停":
            return link["href"]
    return ""
Example #3
0
def get_apk(app_name):
    site = "https://apkpure.com"
    url = "https://apkpure.com/search?q=%s" % (app_name)
    html = requests.get(url)
    parse = BeautifulSoup(html.text)
    for i in parse.find_all("p", class_="search-title"):
        try:
            a_url = i.find("a")["href"]
            app_url = site + a_url + "/download?from=details"
            html2 = requests.get(app_url)
            parse2 = BeautifulSoup(html2.text)
            link = parse2.find("a", id="download_link")
            return link["href"]
        except:
            pass
Example #4
0
 async def realtime(self, ctx):
     url = "https://m.search.naver.com/search.naver?query=%EC%8B%A4%EA%B2%80"
     html = urlopen(url)
     parse = BeautifulSoup(html, "html.parser")
     result = ""
     tags = parse.find_all("span", {"class" : "tit _keyword"})
     temp = 1
     for i, e in enumerate(tags):
         if temp == 16:
             break
         url = "https://search.naver.com/search.naver?ie=UTF-8&query=" + urllib.parse.quote(e.text)
         result = result + (str(i+1))+"위 | ["+e.text+"]("+url+")\n"
         temp+=1
     embed = discord.Embed(title="네이버 실시간 검색어 순위", description=result, color=0xb8bb6a)
     await ctx.send(embed=embed)
Example #5
0
def soup():
    # Request and parse through webpage
    webpage = 'https://raw.githubusercontent.com/00162898/pythonfinalproject/main/finalproject.html'
    req = requests.get(webpage)
    content = req.content
    parse = BeautifulSoup(content, 'html.parser')
    parsed_text = parse.find_all(text=True) #displays in html

    output = '' # include all words
    tag = ['[document]'] # list of tags to filter from the webpage

    #
    for words in parsed_text:
        if words.parent.name not in tag:
            output += '{} '.format(words)

    print(output)
    quit()
Example #6
0
 def extract_form(self, url):
     res = self.session.get(url)
     parse = BeautifulSoup(res.content, "html.parser")
     form_list = parse.find_all("form")
     return form_list
Example #7
0
async def on_message(message):
    if message.content == '하루야 공지채널':
        embed = discord.Embed(
            title="하루 공지채널 안내 ! ",
            description=
            "하루의 중요한 것들을 알려줘요 📌 \n 하지만, 특정 키워드가 들어간 채널이 있을경우 해당 채널로 공지가 발송된다는점 꼭 알고게세요 ! 😊 \n 이 채널로 보내드릴게요! [봇 공지] , [하루 공지] , [공지] [ bot_announcement ]**"
        )
        embed.set_footer(text="흐억 뭐라고요? 질문이 있다고요? 하루야 피드백으로 더 자세하게 알려주세요 🚀")
        await message.channel.send(embed=embed)

    if message.content.startswith("하루야 제작도움"):
        embed = discord.Embed(
            title="제작을 도와주신분들이에요! 짝짝 ! 🎪",
            description=
            "총개발자 : FOR#1111 \n \n 일부 코드 도움을 주신분 :) - ∑」 Apple#9999, djs226587#1243 , cookie#0001",
            timestamp=message.created_at,
            colour=discord.Colour.teal())
        embed.set_footer(text=message.author.name + " | 제 접두사는 하루야 입니다 ❤",
                         icon_url=message.author.avatar_url)
        await message.channel.send(embed=embed)

    if message.content.startswith("하루야 초대"):
        embed = discord.Embed(
            title="와 ! 고마워요 저를 초대해주시게요? ",
            description=
            "[봇 지금 초대하기 !!](https://discord.com/api/oauth2/authorize?client_id=737473931966939209&permissions=8&scope=bot)",
            timestamp=message.created_at,
            colour=discord.Colour.teal())
        embed.set_footer(text=message.author.name + " 이 봇은 FOR#1111 제작해주셨어요 ",
                         icon_url=message.author.avatar_url)
        await message.channel.send(embed=embed)

    if message.content == "하루야 내아이디":
        embed = discord.Embed(title="아이디를 찾았어요 ! ✅",
                              timestamp=message.created_at,
                              colour=discord.Colour.blurple())
        embed.add_field(
            name=f"아이디를 찾은 결과...",
            value=f"`{message.author.id}`가 {message.author.mention}이거예요 ❗ 맞나요? "
        )
        embed.set_footer(text=message.author.name +
                         " | Sky BOT#2208  스카이봇은 2명이 개발하고 있어요!",
                         icon_url=message.author.avatar_url)
        await message.channel.send(embed=embed)

    if message.content.startswith('하루야 아이디'):
        memb = message.guild.get_member(
            int(message.content.split(' ')[1][2:20]))
        embed = discord.Embed(
            title="와 아이디를 찾았다 ❗❗",
            description=
            f"`{memb.id}` 이게 {memb.mention}님의 아이디에요! 와! 명절 갈 때도 동생들이 계롭히지 않고 볼 수 있겠어요",
            timestamp=message.created_at,
            colour=discord.Colour.purple())
        embed.set_footer(text=message.author.name)
        await message.channel.send(embed=embed)

    if message.content == "하루야 도움말" or message.content == "하루야 명령어":
        embed = discord.Embed(title="🔨ㅣ하루 도움말",
                              timestamp=message.created_at,
                              colour=discord.Colour.gold())
        embed.add_field(name="하루야 도움말 기본, 하루야 명령어 기본",
                        value="봇의 기본 명령어들입니다.",
                        inline=False)
        embed.add_field(name="하루야 도움말 관리, 하루야 명령어 관리",
                        value="봇의 관리 명령어들입니다.",
                        inline=False)
        embed.add_field(name="하루야 도움말 지식, 하루야 명령어 지식",
                        value="봇의 지식 명령어들입니다.",
                        inline=False)
        embed.add_field(name="하루야 도움말 정보, 하루야 명령어 정보",
                        value="봇의 정보 명령어들입니다.",
                        inline=False)
        embed.add_field(name="하루야 도움말 기타, 하루야 명령어 기타",
                        value="봇의 기타 명령어들입니다.",
                        inline=False)
        embed.set_footer(text="스카이봇 개발자는 ∑」Cookie**#3907, ∑」wave**#1234 이에요!")
        await message.channel.send(embed=embed)

    if message.content.startswith("하루야 핑"):
        la = client.latency
        embed = discord.Embed(title="PING !")
        embed.add_field(name="반응 속도", value=str(round(la * 1000)) + "ms")
        embed.set_footer(text=message.author.name + " 와!! 좋고 좋았던 실력 같지요?",
                         icon_url=message.author.avatar_url)
        await message.channel.send(embed=embed)

    if message.content == '하루야 내정보':
        print(f'{message.guild.name}/{message.author} (' +
              f'{message.author.id}) : {message.content}')
        roles = [role for role in message.author.roles]
        embed = discord.Embed(colour=message.author.color,
                              timestamp=message.created_at)
        embed.set_author(name=f"{message.author}님의 정보!")
        embed.set_thumbnail(url=message.author.avatar_url)
        embed.set_footer(text=f"{message.author}님의 정보 !",
                         icon_url=message.author.avatar_url)
        embed.add_field(name="ID", value=message.author.id, inline=False)
        embed.add_field(name="닉네임",
                        value=message.author.display_name,
                        inline=False)
        embed.add_field(name="계정 생성 시간",
                        value=message.author.created_at.strftime(
                            "%a, %#d %B %Y, %I:%M %p UTC"),
                        inline=False)
        embed.add_field(name="가입 시간",
                        value=message.author.joined_at.strftime(
                            "%a, %#d %B %Y, %I:%M %p UTC"),
                        inline=False)
        embed.add_field(name=f"소유한 역할 ({len(roles)})",
                        value=" ".join([role.mention for role in roles]),
                        inline=False)
        embed.add_field(name="가장 높은등급인 역할",
                        value=message.author.top_role.mention,
                        inline=False)
        embed.add_field(name="상태", value=message.author.status, inline=False)
        await message.channel.send(embed=embed)

    if message.content.startswith('하루야 정보'):
        print(f'{message.guild.name}/{message.author} (' +
              f'{message.author.id}) : {message.content}')
        user2 = message.guild.get_member(
            int(message.content.split(' ')[1][2:20]))
        roles = [role for role in user2.roles]
        embed = discord.Embed(colour=user2.color, timestamp=message.created_at)
        embed.set_author(name=f"{user2}님의 정보!")
        embed.set_thumbnail(url=user2.avatar_url)
        embed.set_footer(text=f"{message.author}님에 의해 제공되었어요!",
                         icon_url=message.author.avatar_url)
        embed.add_field(name="ID", value=user2.id, inline=False)
        embed.add_field(name="닉네임", value=user2.display_name, inline=False)
        embed.add_field(
            name="계정 생성 시간",
            value=user2.created_at.strftime("%a, %#d %B %Y, %I:%M %p UTC"),
            inline=False)
        embed.add_field(
            name="가입 시간",
            value=user2.joined_at.strftime("%a, %#d %B %Y, %I:%M %p UTC"),
            inline=False)
        embed.add_field(name=f"소유한 역할 ({len(roles)})",
                        value=" ".join([role.mention for role in roles]),
                        inline=False)
        embed.add_field(name="가장 높은등급인 역할",
                        value=user2.top_role.mention,
                        inline=False)
        embed.add_field(name="상태", value=user2.status, inline=False)
        await message.channel.send(embed=embed)

    if message.content == '하루야 서버정보':
        rnrrk = message.guild.region
        print(message.guild.region)
        embed = discord.Embed(colour=0x85CFFF,
                              timestamp=message.created_at,
                              title=f"{message.guild.name}")
        embed.set_thumbnail(url=message.guild.icon_url)
        embed.add_field(name="서버 이름", value=message.guild.name, inline=False)
        embed.add_field(name="서버 ID", value=message.guild.id, inline=False)
        embed.add_field(name="서버 국가", value=rnrrk, inline=False)
        embed.add_field(name="서버 Owner",
                        value=f'<@{message.guild.owner.id}>',
                        inline=False)
        embed.add_field(name="서버 Owner ID",
                        value=message.guild.owner.id,
                        inline=False)
        embed.add_field(
            name="서버 멤버 수",
            value=
            f'{len(message.guild.members)}명 (봇 : {len(list(filter(lambda x: x.bot, message.guild.members)))}명 | 유저 : {len(list(filter(lambda x: not x.bot, message.guild.members)))}명)',
            inline=False)
        embed.add_field(
            name="서버 채널 수",
            value=
            f'전체 채널: {len(message.guild.channels)}개 (채팅채널 : {len(message.guild.text_channels)}개 | 음성채널 : {len(message.guild.voice_channels)}개 | 카테고리 : {len(message.guild.categories)}개)',
            inline=False)
        embed.add_field(name="서버 부스트 레벨",
                        value=f'{message.guild.premium_tier}레벨',
                        inline=False)
        embed.add_field(name="서버 부스트 횟수",
                        value=f'{message.guild.premium_subscription_count}번',
                        inline=False)
        if message.guild.afk_channel != None:
            embed.add_field(
                name=f'잠수 채널',
                value=
                f'<#{message.guild.afk_channel.id}> \n ( 시간 제한 : {message.guild.afk_timeout} 초 )',
                inline=False)
        else:
            embed.add_field(name="잠수 채널", value="잠수 채널이 없습니다.")
        if message.guild.system_channel != None:
            embed.add_field(name=f'시스템 채널',
                            value=f'<#{message.guild.system_channel.id}>',
                            inline=False)
        else:
            embed.add_field(name="잠수 채널", value="시스템 채널이 없습니다.")
        embed.set_footer(text=f"{message.author}, 인증됨 | 준홍봇의 코드를 참고했어요!",
                         icon_url=message.author.avatar_url)
        await message.channel.send(embed=embed)

    if message.content.startswith("하루야 계산"):
        global calcResult
        param = message.content.split()
        try:
            if param[1].startswith("더하기"):
                calcResult = int(param[2]) + int(param[3])
                if calcResult < 1000000000:
                    embed = discord.Embed(title="하루 머리 돌리는중 !: 계산 더하기 결과 ",
                                          description="계산 결과는 [ " +
                                          str(calcResult) +
                                          " ] 인것 같아요! 정답인가요 ❓")
                    await message.channel.send(embed=embed)
                elif calcResult >= 1000000000:
                    embed = discord.Embed(
                        title="ERROR 496 : 계산 더하기 에러 496 ",
                        description=
                        "계산 결과가 너무 커요 ``**100, 000, 000**`` 아레로 계산 해드릴게요",
                        timestamp=message.created_at,
                        colour=discord.Colour.red())
                    await message.channel.send(embed=embed)
            if param[1].startswith("빼기"):
                calcResult = int(param[2]) - int(param[3])
                if calcResult < 100000000:
                    embed = discord.Embed(title="하루 계산 돌리는중 : 계산 빼기 결과 ",
                                          description="계산 결과는 [ " +
                                          str(calcResult) +
                                          " ] 인것 같아요! 틀렸나요 ❓")
                    await message.channel.send(embed=embed)
                elif calcResult >= 100000000:
                    embed = discord.Embed(
                        title="ERROR 496 : 계산 더하기 에러 496 ",
                        description=
                        "계산 결과가 너무 커요 ``**100, 000, 000**`` 아레로 계산 해드릴게요",
                        timestamp=message.created_at,
                        colour=discord.Colour.red())
                    await message.channel.send(embed=embed)
            if param[1].startswith("곱하기"):
                calcResult = int(param[2]) * int(param[3])
                if calcResult < 10000000000:
                    embed = discord.Embed(title="하루 계산 돌리는중 !  : 계산 곱하기 결과 ",
                                          description="계산 결과는 [ " +
                                          str(calcResult) + " ] 인것 같아요!")
                    await message.channel.send(embed=embed)
                elif calcResult >= 10000000000:
                    embed = discord.Embed(
                        title="ERROR 496 : 계산 더하기 에러 496 ",
                        description=
                        "계산 결과가 너무 커요 ``**100, 000, 000**`` 아레로 계산 해드릴게요",
                        timestamp=message.created_at,
                        colour=discord.Colour.red())
            await message.channel.send(embed=embed)
        except ValueError:
            await message.channel.send("숫자가 아닌거 같은데요 ❓ 🥺")
        except ZeroDivisionError:
            await message.channel.send("You can't divide with 0.")

    if message.content == "하루야 도움말 기본" or message.content == '하루야 명령어 기본':
        embed = discord.Embed(title="✅ ㅣ HARU 기본 명령어 ",
                              timestamp=message.created_at,
                              colour=discord.Colour.dark_blue())
        embed.add_field(name="하루야 도움말, 하루야 명령어",
                        value="하루의 도움말을 보여드려요!",
                        inline=False)
        embed.add_field(
            name="하루야 핑",
            value="하루의 현재 말 하는 속도가 얼마나 빠른지 알려줘요 ( 현재 호스팅 팀에서 에러가 발생해 이상합니다 ) ",
            inline=False)
        embed.add_field(name="하루야 업타임",
                        value="하루가 얼마나 일을 잘 하는지 알려드려요 ",
                        inline=False)
        embed.add_field(name="하루야 초대",
                        value="하루의 초대링크가 포함된 메시지를 보내요!",
                        inline=False)
        embed.add_field(name="하루야 피드백 [ 내용 ]",
                        value="SkyBOT의 개발자에게 [ 내용 ] 을 보내요!",
                        inline=False)
        embed.add_field(name="하루야 봇정보",
                        value="봇의 기본 정보들이 담겼습니다!",
                        inline=False)
        embed.add_field(name="하루야 공지채널",
                        value="공지채널에 대해서 알려드려요!",
                        inline=False)
        embed.set_footer(text="하루 제작자는  FOR#1111 이에요!")
        await message.channel.send(embed=embed)

    if message.content == "하루야 도움말 관리" or message.content == '하루야 명령어 관리':
        embed = discord.Embed(title="🔨ㅣ 관리 명령어",
                              timestamp=message.created_at,
                              colour=discord.Colour.dark_teal())
        embed.add_field(
            name="하루야 청소 [ 메시지 수 ]",
            value=
            "[ 메시지 수 ] 에 해당하는 숫자 - 1 만큼의 메시지가 지워집니다! \n /청소 11 을 적으면 10개를 지우는것과 같습니다!",
            inline=False)
        embed.add_field(
            name="하루야 킥 [ 멘션 ] [ 사유 ]",
            value=
            "[ 멘션 ] 된 유저를 [ 사유 ] 로 인해 서버에서 추방합니다! \n 사유를 적지않으면 사유가 None으로 표시됩니다.",
            inline=False)
        embed.add_field(
            name="하루야 밴 [ 멘션 ] [ 사유 ]",
            value=
            "[ 멘션 ] 된 유저를 [ 사유 ] 로 인해 서버에서 차단합니다! \n 사유를 적지않으면 사유가 None으로 표시됩니다.",
            inline=False)
        embed.set_footer(
            text="하루봇 개발자는 HARU#7505  이에요!ㅣ해당 명령어들은 서버 관리자 권한이 있는 사람만 가능해요!")
        await message.channel.send(embed=embed)

    if message.content == '하루야 도움말 기타' or message.content == '하루야 명령어 기타':
        embed = discord.Embed(title="🎸ㅣ하루 기타 명령어",
                              timestamp=message.created_at,
                              colour=discord.Colour.dark_gold())
        embed.add_field(name="하루야 주사위",
                        value="1부터 6까지의 숫자중 랜덤한 숫자가 나옵니다!",
                        inline=False)
        embed.add_field(name="하루야 복권", value="랜덤하게 번호를 출력합니다.", inline=False)
        embed.set_footer(
            text="봇 개발자는 FOR #1234 이에요! TEAM STACATO에서는 스페이스봇이 제일 성능이 강해요 ")
        await message.channel.send(embed=embed)

    if message.content == '하루야 도움말 검색' or message.content == '하루야 명령어 검색':
        embed = discord.Embed(title="🔎ㅣ하루 검색 명령어",
                              timestamp=message.created_at,
                              colour=discord.Colour.teal())
        embed.add_field(name='하루야 날씨 [ 지역 ]',
                        value="[ 지역 ] 의 정보를 출력합니다. \n 국내 지역만 지원합니다.",
                        inline=False)
        embed.add_field(
            name="하루야 이미지 [ 검색어 ]",
            value="[ 검색어 ] 에 알맞는 이미지를 랜덤하게 출력합니다. \n 정확도가 다소 떨어질 수 있습니다.",
            inline=False)
        embed.add_field(name="하루야 실검",
                        value="네이버 실시간 검색어 순위를 출력합니다.",
                        inline=False)
        embed.add_field(
            name="하루야 계산 [ 더하기/빼기/곱하기] [ 수 ] [ 수 ] ...",
            value=
            "[ 더하기/뺴기/곱하기/나누기 ] 로 [ 수 ] 들을 계산합니다. \n 사용 예시 ) /계산 더하기 1 2 3 5",
            inline=False)
        embed.add_field(name="하루야 코로나",
                        value="국내 코로나 정보를 출력합니다. \n Made by J-hoplin",
                        inline=False)
        await message.channel.send(embed=embed)

    if message.content == '하루야 도움말 정보' or message.content == '하루야 명령어 정보':
        embed = discord.Embed(title="📃ㅣSKYBOT 정보 명령어",
                              timestamp=message.created_at,
                              colour=discord.Colour.dark_teal())
        embed.add_field(name="하루야 내정보", value="본인의 정보를 출력합니다.", inline=False)
        embed.add_field(name="하루야 정보 [ 멘션 ]",
                        value="멘션된 유저의 정보를 출력합니다.",
                        inline=False)
        embed.add_field(name="하루야 내아이디", value="본인의 아이디를 출력합니다.", inline=False)
        embed.add_field(name="하루야 아이디 [ 멘션 ]",
                        value="멘션된 유저의 아이디를 출력합니다.",
                        inline=False)
        await message.channel.send(embed=embed)

    if (message.content.split(" ")[0] == "하루야 밴"):
        if (message.author.guild_permissions.ban_members):
            try:
                user = message.guild.get_member(
                    int(message.content.split(' ')[1][3:21]))
                reason = message.content[22:]
                if (len(message.content.split(" ")) == 2):
                    reason = "None"
                await user.send(embed=discord.Embed(
                    title="💥 서버 추방",
                    description=
                    f'당신은 **{message.guild.name}** 서버에서 아이피 차단되었습니다 ❗ 사유는 다음과 같습니다. ```{reason}```',
                    color=0xff0000))
                await user.ban(reason=reason)
                await message.channel.send(embed=discord.Embed(
                    title="ip Ban Success",
                    description=
                    f"{message.author.mention} 님, 성공적으로 아이피 차단했어요 ✅ 사유:```{reason}```",
                    color=0x00ff00))
            except Exception as e:
                await message.channel.send(embed=discord.Embed(
                    title="❌ 에러 발생", description=str(e), color=0xff0000))
                return
        else:
            await message.channel.send(
                embed=discord.Embed(title="⚠ 권한 부족",
                                    description=message.author.mention +
                                    "님은 유저를 차단할 수 없어요.",
                                    color=0xff0000))
            return

    if (message.content.split(" ")[0] == "하루야 킥"):
        if (message.author.guild_permissions.kick_members):
            try:
                user = message.guild.get_member(
                    int(message.content.split(' ')[1][2:20]))
                reason = message.content[22:]
                if (len(message.content.split(" ")) == 2):
                    reason = "None"
                await user.send(embed=discord.Embed(
                    title="💥 서버 추방",
                    description=
                    f'당신은 **{message.guild.name}** 서버에서 추방되었습니다 하지만 다시 들어갈 수 있습니다 사유는 다음과 같습니다. ```{reason}```',
                    color=0xff0000))
                await user.kick(reason=reason)
                await message.channel.send(embed=discord.Embed(
                    title="Kick Success",
                    description=
                    f"{message.author.mention} 님, 성공적으로 추방시켰습니다 ✅ 사유:```{reason}```",
                    color=0x00ff00))
            except Exception as e:
                await message.channel.send(embed=discord.Embed(
                    title="❌ 에러 발생", description=str(e), color=0xff0000))
                return
        else:
            await message.channel.send(
                embed=discord.Embed(title="⚠ 권한 부족",
                                    description=message.author.mention +
                                    "님은 유저를 추방할 수 있는 권한이 부족합니다.",
                                    color=0xff0000))
            return

    if message.content.startswith("하루야 피드백"):
        Dansdml1 = message.content[5:]
        Dansdml = discord.Embed(title="**< H  A  R  U >**", color=0x6777ff)
        Dansdml.add_field(
            name="• 문의하는 내용",
            value=
            f"{Dansdml1}\n\n• 문의하는 서버 : {message.guild.name}\n• 문의한 이용자 : {message.author.mention}",
            inline=False)
        Dansdml.set_thumbnail(
            url=
            "https://cdn.discordapp.com/avatars/370181734320570386/ba203aa082216b43dae16b86a44557b9.webp?size=128"
        )
        Dansdml.set_footer(text=message.author.name +
                           " |장난 발송을 그만해주세요 아이피 기록이 남습니다!ㅣ",
                           icon_url=message.author.avatar_url)
        m = await message.channel.send("문의발송 여부를 선택하여주세요.", embed=Dansdml)
        await m.add_reaction('📣')
        await m.add_reaction('🚫')
        try:
            reaction, user = await client.wait_for(
                'reaction_add',
                timeout=5,
                check=lambda reaction, user: user == message.author and str(
                    reaction.emoji) in ['✅', '❎'])
        except asyncio.TimeoutError:
            Drhdwltlrks = discord.Embed(title="**< Space BOT >**",
                                        color=0xff0000)
            Drhdwltlrks.add_field(
                name="**문의**",
                value=f"{message.author.mention} **님 문의발송 선택 시간초과입니다.**",
                inline=False)
            Drhdwltlrks.set_thumbnail(url=message.author.avatar_url)
            Drhdwltlrks.set_footer(
                text="문의 발송은 언제든지 다시 가능합니다",
                icon_url=
                "https://cdn.discordapp.com/avatars/370181734320570386/ba203aa082216b43dae16b86a44557b9.webp?size=128"
            )
            await m.edit(content="문의발송이 취소되었습니다.", embed=Drhdwltlrks)
        else:
            if str(reaction.emoji) == "❎":
                Drhdwlcnlth = discord.Embed(title="**< H  A  R  U >**",
                                            color=0xff0000)
                Drhdwlcnlth.add_field(
                    name="**문의**",
                    value=
                    f"{message.author.mention} ** 님 문의발송이 정상 취소되었습니다 ✅ **",
                    inline=False)
                Drhdwlcnlth.set_thumbnail(url=message.author.avatar_url)
                Drhdwlcnlth.set_footer(
                    text=
                    "제작자 : FOR#1111  | 피드백 코드의 원본은 djs226587#1243 님의 코드에요 !",
                    icon_url=
                    "https://cdn.discordapp.com/avatars/370181734320570386/ba203aa082216b43dae16b86a44557b9.webp?size=128"
                )
                await m.edit(embed=Drhdwlcnlth)
            elif str(reaction.emoji) == "✅":
                await m.edit(content="아이피와 함께 보내졌습니다. 악용 사용시 처벌을 받으실 수 있습니다.",
                             embed=Dansdml)
                await client.get_channel(int(737624237925466154)
                                         ).send(embed=Dansdml)

    if message.content == "하루야 실검":
        url = "https://m.search.naver.com/search.naver?query=%EC%8B%A4%EA%B2%80"
        html = urlopen(url)
        parse = BeautifulSoup(html, "html.parser")
        result = ""
        tags = parse.find_all("span", {"class": "tit _keyword"})
        for i, e in enumerate(tags):
            result = result + (str(i + 1)) + "위 | " + e.text + "\n"
        await message.channel.send(result)

    if message.content.startswith("하루야 청소"):
        if message.author.guild_permissions.manage_messages:
            try:
                amount = message.content[4:]
                await message.channel.purge(limit=int(amount))
                embed = discord.Embed(
                    title="청소 완료!",
                    description=
                    f"{message.author.mention}, **{amount}** 개의 메시지를 청소했어요 ❗ 와 이렇니깐 참 깨끗해진거 같아요",
                    timestamp=message.created_at,
                    colour=discord.Colour.green())
                embed.set_footer(
                    text="FOR #1111",
                    icon_url=
                    "https://cdn.discordapp.com/avatars/370181734320570386/ba203aa082216b43dae16b86a44557b9.webp?size=128"
                )
                await message.channel.send(embed=embed)
            except ValueError:
                embed = discord.Embed(
                    title="청소 실패!",
                    description=
                    f"{message.author.mention}, 청소할 메시지가 정해져 있지 않아요!",
                    timestamp=message.created_at,
                    colour=discord.Colour.orange())
                embed.set_footer(
                    text="FOR #1111",
                    icon_url=
                    "https://cdn.discordapp.com/avatars/370181734320570386/ba203aa082216b43dae16b86a44557b9.webp?size=128"
                )
                await message.channel.send(embed=embed)
        else:
            embed = discord.Embed(
                title="청소 실패!",
                description=f"{message.author.mention}, 청소를 실행할 권한이 부족해요!",
                timestamp=message.created_at,
                colour=discord.Colour.red())
            embed.set_footer(
                text="FOR #1111",
                icon_url=
                "https://cdn.discordapp.com/avatars/370181734320570386/ba203aa082216b43dae16b86a44557b9.webp?size=128"
            )
            await message.channel.send(embed=embed)

    if message.content.startswith('하루야 이미지'):

        Text = ""
        learn = message.content.split(" ")
        vrsize = len(learn)  # 배열크기
        vrsize = int(vrsize)
        for i in range(1, vrsize):  # 띄어쓰기 한 텍스트들 인식함
            Text = Text + " " + learn[i]
        print(Text.strip())  # 입력한 명령어

        randomNum = random.randrange(0, 3)  # 랜덤 이미지 숫자

        location = Text
        enc_location = urllib.parse.quote(
            location)  # 한글을 url에 사용하게끔 형식을 바꿔줍니다. 그냥 한글로 쓰면 실행이 안됩니다.
        hdr = {'User-Agent': 'Mozilla/5.0'}
        # 크롤링 하는데 있어서 가끔씩 안되는 사이트가 있습니다.
        # 그 이유는 사이트가 접속하는 상대를 봇으로 인식하였기 때문인데
        # 이 코드는 자신이 봇이 아닌것을 증명하여 사이트에 접속이 가능해집니다!
        url = 'https://search.naver.com/search.naver?where=image&sm=tab_jum&query=' + enc_location  # 이미지 검색링크+검색할 키워드
        print(url)
        req = Request(url, headers=hdr)
        html = urllib.request.urlopen(req)
        bsObj = bs4.BeautifulSoup(html, "html.parser")  # 전체 html 코드를 가져옵니다.
        # print(bsObj)
        imgfind1 = bsObj.find(
            'div', {'class': 'photo_grid _box'
                    })  # bsjObj에서 div class : photo_grid_box 의 코드를 가져옵니다.
        # print(imgfind1)
        imgfind2 = imgfind1.findAll(
            'a', {'class': 'thumb _thumb'})  # imgfind1 에서 모든 a태그 코드를 가져옵니다.
        imgfind3 = imgfind2[
            randomNum]  # 0이면 1번째사진 1이면 2번째사진 형식으로 하나의 사진 코드만 가져옵니다.
        imgfind4 = imgfind3.find('img')  # imgfind3 에서 img코드만 가져옵니다.
        imgsrc = imgfind4.get(
            'data-source')  # imgfind4 에서 data-source(사진링크) 의 값만 가져옵니다.
        print(imgsrc)
        embed = discord.Embed(title="이미지 검색 결과입니다!",
                              timestamp=message.created_at,
                              colour=discord.Colour.green())
        embed.set_image(url=imgsrc)  # 이미지의 링크를 지정해 이미지를 설정합니다.
        await message.channel.send(embed=embed)  # 메시지를 보냅니다.

    if message.content == '하루야 봇정보':
        user = len(client.users)
        server = len(client.guilds)
        embed = discord.Embed(title="봇 정보",
                              timestamp=message.created_at,
                              colour=discord.Colour.green())
        embed.add_field(name="개발 언어", value="Python", inline=False)
        embed.add_field(name="개발 시작 일자", value="2020. 9 / 14", inline=False)
        embed.add_field(name="서버 수", value=str(server), inline=False)
        embed.add_field(name="유저 수", value=str(user), inline=False)
        embed.add_field(name="제작자 나이", value="11 살", inline=False)
        embed.add_field(name="자원 언어", value="~~일본어~~,한국어", inline=False)
        await message.channel.send(embed=embed)

    if message.content == '하루야 주사위':
        randomlist = ['1', '2', '3', '4', '5', '6']
        ran = random.randint(0, len(randomlist) - 1)
        embed = discord.Embed(title=f"'{randomlist[ran]}' 가 나왔습니다!")
        embed.add_field(name="결과", value=f"{randomlist[ran]}가 나왔습니다!")
        await message.channel.send(embed=embed)

    if message.content.startswith("하루야 날씨"):
        learn = message.content.split(" ")
        location = learn[1]
        enc_location = urllib.parse.quote(location + '날씨')
        hdr = {'User-Agent': 'Mozilla/5.0'}
        url = 'https://search.naver.com/search.naver?where=nexearch&sm=top_hty&fbm=1&ie=utf8&query=' + enc_location
        print(url)
        req = Request(url, headers=hdr)
        html = urllib.request.urlopen(req)
        bsObj = bs4.BeautifulSoup(html, "html.parser")
        todayBase = bsObj.find('div', {'class': 'main_info'})

        todayTemp1 = todayBase.find('span', {'class': 'todaytemp'})
        todayTemp = todayTemp1.text.strip()  # 온도
        print(todayTemp)

        todayValueBase = todayBase.find('ul', {'class': 'info_list'})
        todayValue2 = todayValueBase.find('p', {'class': 'cast_txt'})
        todayValue = todayValue2.text.strip()  # 밝음,어제보다 ?도 높거나 낮음을 나타내줌
        print(todayValue)

        todayFeelingTemp1 = todayValueBase.find('span', {'class': 'sensible'})
        todayFeelingTemp = todayFeelingTemp1.text.strip()  # 체감온도
        print(todayFeelingTemp)

        todayMiseaMongi1 = bsObj.find('div', {'class': 'sub_info'})
        todayMiseaMongi2 = todayMiseaMongi1.find('div',
                                                 {'class': 'detail_box'})
        todayMiseaMongi3 = todayMiseaMongi2.find('dd')
        todayMiseaMongi = todayMiseaMongi3.text  # 미세먼지
        print(todayMiseaMongi)

        tomorrowBase = bsObj.find(
            'div', {'class': 'table_info weekly _weeklyWeather'})
        tomorrowTemp1 = tomorrowBase.find('li', {'class': 'date_info'})
        tomorrowTemp2 = tomorrowTemp1.find('dl')
        tomorrowTemp3 = tomorrowTemp2.find('dd')
        tomorrowTemp = tomorrowTemp3.text.strip()  # 오늘 오전,오후온도
        print(tomorrowTemp)

        tomorrowAreaBase = bsObj.find('div', {'class': 'tomorrow_area'})
        tomorrowMoring1 = tomorrowAreaBase.find(
            'div', {'class': 'main_info morning_box'})
        tomorrowMoring2 = tomorrowMoring1.find('span', {'class': 'todaytemp'})
        tomorrowMoring = tomorrowMoring2.text.strip()  # 내일 오전 온도
        print(tomorrowMoring)

        tomorrowValue1 = tomorrowMoring1.find('div', {'class': 'info_data'})
        tomorrowValue = tomorrowValue1.text.strip()  # 내일 오전 날씨상태, 미세먼지 상태
        print(tomorrowValue)

        tomorrowAreaBase = bsObj.find('div', {'class': 'tomorrow_area'})
        tomorrowAllFind = tomorrowAreaBase.find_all(
            'div', {'class': 'main_info morning_box'})
        tomorrowAfter1 = tomorrowAllFind[1]
        tomorrowAfter2 = tomorrowAfter1.find('p',
                                             {'class': 'info_temperature'})
        tomorrowAfter3 = tomorrowAfter2.find('span', {'class': 'todaytemp'})
        tomorrowAfterTemp = tomorrowAfter3.text.strip()  # 내일 오후 온도
        print(tomorrowAfterTemp)

        tomorrowAfterValue1 = tomorrowAfter1.find('div',
                                                  {'class': 'info_data'})
        tomorrowAfterValue = tomorrowAfterValue1.text.strip()

        print(tomorrowAfterValue)  # 내일 오후 날씨상태,미세먼지

        embed = discord.Embed(title=learn[1] + ' 날씨 정보',
                              description=learn[1] + '날씨 정보입니다.',
                              colour=discord.Colour.gold())
        embed.add_field(name='현재온도', value=todayTemp + '˚',
                        inline=False)  # 현재온도
        embed.add_field(name='체감온도', value=todayFeelingTemp,
                        inline=False)  # 체감온도
        embed.add_field(name='현재상태', value=todayValue,
                        inline=False)  # 밝음,어제보다 ?도 높거나 낮음을 나타내줌
        embed.add_field(name='현재 미세먼지 상태', value=todayMiseaMongi,
                        inline=False)  # 오늘 미세먼지
        embed.add_field(name='오늘 오전/오후 날씨', value=tomorrowTemp,
                        inline=False)  # 오늘날씨 # color=discord.Color.blue()
        embed.add_field(name='**----------------------------------**',
                        value='**----------------------------------**',
                        inline=False)  # 구분선
        embed.add_field(name='내일 오전온도',
                        value=tomorrowMoring + '˚',
                        inline=False)  # 내일오전날씨
        embed.add_field(name='내일 오전날씨상태, 미세먼지 상태',
                        value=tomorrowValue,
                        inline=False)  # 내일오전 날씨상태
        embed.add_field(name='내일 오후온도',
                        value=tomorrowAfterTemp + '˚',
                        inline=False)  # 내일오후날씨
        embed.add_field(name='내일 오후날씨상태, 미세먼지 상태',
                        value=tomorrowAfterValue,
                        inline=False)  # 내일오후 날씨상태

        await message.channel.send(embed=embed)

    if message.content.startswith("하루야 복권"):
        Text = ""
        number = [1, 2, 3, 4, 5, 6, 7]
        count = 0
        for i in range(0, 7):
            num = random.randrange(1, 46)
            number[i] = num
            if count >= 1:
                for i2 in range(0, i):
                    if number[i] == number[i2]:  # 만약 현재랜덤값이 이전숫자들과 값이 같다면
                        numberText = number[i]
                        print("작동 이전값 : " + str(numberText))
                        number[i] = random.randrange(1, 46)
                        numberText = number[i]
                        print("작동 현재값 : " + str(numberText))
                        if number[i] == number[
                                i2]:  # 만약 다시 생성한 랜덤값이 이전숫자들과 또 같다면
                            numberText = number[i]
                            print("작동 이전값 : " + str(numberText))
                            number[i] = random.randrange(1, 46)
                            numberText = number[i]
                            print("작동 현재값 : " + str(numberText))
                            if number[i] == number[
                                    i2]:  # 만약 다시 생성한 랜덤값이 이전숫자들과 또 같다면
                                numberText = number[i]
                                print("작동 이전값 : " + str(numberText))
                                number[i] = random.randrange(1, 46)
                                numberText = number[i]
                                print("작동 현재값 : " + str(numberText))

            count = count + 1
            Text = Text + "  " + str(number[i])

        print(Text.strip())
        embed = discord.Embed(title="복권 숫자!",
                              description=Text.strip(),
                              colour=discord.Color.red())
        await message.channel.send(embed=embed)

    if message.content.startswith(f'하루야 봇현황'):
        if message.author.id in owner:
            embed = discord.Embed(
                title="ㅍ",
                description=
                f"{len(client.guilds)}개의 서버에 있습니다. {len(client.users)}명의 이용자와 함께합니다.",
                color=0xe38f4e)
            value = ""
            for guild in client.guilds:
                value += f"{guild.name}\n"
            embed.add_field(name="저는 어느 서버에 있을까요?", value=value)
            await message.channel.send(
                f"{message.author.mention} DM으로 전송해 드렸어요!")
            await message.author.send(embed=embed)
        else:
            await message.channel.send("해당 명령어는 Owner 등급 이상만 사용 가능합니다.")


# 관리 명령어

    if message.content.startswith("하루야 eval"):
        if message.author.id in owner:
            a = message.content[6:]

            if message.content in [
                    'output', 'token', 'file=', 'os', 'logout', 'login',
                    'quit', 'exit', 'sys', 'shell', 'dir'
            ]:
                embed = discord.Embed(colour=0x85CFFF,
                                      timestamp=message.created_at)
                embed.add_field(
                    name="Error!",
                    value=f'{message.content} 그 명령어는 금지된 단어가 포함되어있습니다.',
                    inline=True)
                embed.set_footer(text=f"{message.author}, 인증됨",
                                 icon_url=message.author.avatar_url)
                await message.channel.send(embed=embed)
                return None

            try:
                msg = await message.channel.send(
                    embed=discord.Embed(color=0x85CFFF,
                                        title="evaling...",
                                        description=f"""📥INPUT📥
    ```py
    {a}
    ```
    📤OUTPUT📤
    ```py
    evaling...
    ```"""))
                aa = await eval(a)
            except Exception as e:
                await msg.edit(embed=discord.Embed(color=0x85CFFF,
                                                   title="eval",
                                                   description=f"""📥INPUT📥
                        
    ```py
    {a}          
    ```
    📤OUTPUT📤
    ```py
    {e}
    ```"""))
                try:
                    aa = eval(a)
                except Exception as e:
                    await msg.edit(embed=discord.Embed(color=0x85CFFF,
                                                       title="eval",
                                                       description=f"""📥INPUT📥
                        
    ```py
    {a}
    ```
    📤OUTPUT📤
    ```py
    {e}
    ```"""))
                else:
                    await msg.edit(embed=discord.Embed(color=0x85CFFF,
                                                       title=f"eval",
                                                       description=f"""📥INPUT📥
    ```py
    {a}
    ```
    📤OUTPUT📤
    ```py
    {aa}
    ```"""))
            else:
                await msg.edit(embed=discord.Embed(color=0x85CFFF,
                                                   title="eval",
                                                   description=f"""📥INPUT📥
    ```py
    {a}
    ```
    📤OUTPUT📤
    ```py
    {aa}
    ```"""))
        else:
            await message.channel.send("권한없음")
#!/usr/bin/env python3

import requests  
from bs4 import BeautifulSoup  
import urllib.parse

response = requests.get('http://www.freeimages.co.uk/galleries/transtech/informationtechnology/index.htm')  
parse = BeautifulSoup(response.text,'lxml')

# Get all image tags
image_tags = parse.find_all('img')

# Get urls to the images
images = [ url.get('src') for url in image_tags]

# If no images found in the page
if not images:  
    sys.exit("Found No Images")

# Convert relative urls to absolute urls if any
images = [urllib.parse.urljoin(response.url, url) for url in images]  
print('Found %s images' % len(images))

#create download_images folder if not exists

import os

file_path = "download_images"
directory = os.path.dirname(file_path)

if not os.path.exists(directory):