diff --git a/list.json b/list.json
index 308a08c..12b6344 100644
--- a/list.json
+++ b/list.json
@@ -129,6 +129,26 @@
"supported": true,
"des-short": "查询域名whois信息",
"des": "查看域名是否已被注册、注册日期、过期日期、域名状态、DNS解析服务器等。"
+ },
+ {
+ "name": "weather",
+ "version": "1.111",
+ "section": "daily",
+ "maintainer": "xtaodada",
+ "size": "3.1 kb",
+ "supported": true,
+ "des-short": "查询天气。",
+ "des": "这个人很懒,什么都没有留下。"
+ },
+ {
+ "name": "resou",
+ "version": "1.221",
+ "section": "daily",
+ "maintainer": "KorenKrita、xtaodada、monsterxcn",
+ "size": "2.5 kb",
+ "supported": true,
+ "des-short": "微博,知乎,抖音实时热搜。",
+ "des": "命令:wbrs,zhrs,dyrs。"
}
]
}
diff --git a/resou/main.py b/resou/main.py
new file mode 100644
index 0000000..39825c8
--- /dev/null
+++ b/resou/main.py
@@ -0,0 +1,59 @@
+from pyrogram import Client
+from json.decoder import JSONDecodeError
+from pagermaid.listener import listener
+from pagermaid.utils import Message, client
+
+
+@listener(command="zhrs",
+ description="知乎热搜。")
+async def zhrs(_: Client, message: Message):
+ req = await client.get("https://tenapi.cn/zhihuresou")
+ if req.status_code == 200:
+ try:
+ data = req.json()
+ except JSONDecodeError:
+ await message.edit("出错了呜呜呜 ~ API 数据解析失败。")
+ return
+ res = '知乎实时热搜榜:\n'
+ for i in range(0, 10):
+ res += f'\n{i + 1}.「{data["list"][i]["query"]}」'
+ await message.edit(res)
+ else:
+ await message.edit("出错了呜呜呜 ~ 无法访问到 API 服务器 。")
+
+
+@listener(command="wbrs",
+ description="微博热搜。")
+async def wbrs(_: Client, message: Message):
+ req = await client.get("https://tenapi.cn/resou")
+ if req.status_code == 200:
+ try:
+ data = req.json()
+ except JSONDecodeError:
+ await message.edit("出错了呜呜呜 ~ API 数据解析失败。")
+ return
+ res = '微博实时热搜榜:\n'
+ for i in range(0, 10):
+ res += f'\n{i + 1}.「{data["list"][i]["name"]}」 ' \
+ f'热度:{data["list"][i]["hot"]}'
+ await message.edit(res)
+ else:
+ await message.edit("出错了呜呜呜 ~ 无法访问到 API 服务器 。")
+
+
+@listener(command="dyrs",
+ description="抖音热搜。")
+async def dyrs(_: Client, message: Message):
+ req = await client.get("https://tenapi.cn/douyinresou")
+ if req.status_code == 200:
+ try:
+ data = req.json()
+ except JSONDecodeError:
+ await message.edit("出错了呜呜呜 ~ API 数据解析失败。")
+ return
+ res = '抖音实时热搜榜:\n'
+ for i in range(0, 10):
+ res += f'\n{i + 1}.「{data["list"][i]["name"]}」 热度:{data["list"][i]["hot"]}'
+ await message.edit(res)
+ else:
+ await message.edit("出错了呜呜呜 ~ 无法访问到 API 服务器 。")
diff --git a/weather/main.py b/weather/main.py
new file mode 100644
index 0000000..4d95793
--- /dev/null
+++ b/weather/main.py
@@ -0,0 +1,77 @@
+import datetime
+from pyrogram import Client
+from pagermaid.listener import listener
+from pagermaid.utils import Message, client
+
+icons = {
+ "01d": "🌞",
+ "01n": "🌚",
+ "02d": "⛅️",
+ "02n": "⛅️",
+ "03d": "☁️",
+ "03n": "☁️",
+ "04d": "☁️",
+ "04n": "☁️",
+ "09d": "🌧",
+ "09n": "🌧",
+ "10d": "🌦",
+ "10n": "🌦",
+ "11d": "🌩",
+ "11n": "🌩",
+ "13d": "🌨",
+ "13n": "🌨",
+ "50d": "🌫",
+ "50n": "🌫",
+}
+
+
+def timestamp_to_time(timestamp, timeZoneShift):
+ timeArray = datetime.datetime.utcfromtimestamp(timestamp) + datetime.timedelta(seconds=timeZoneShift)
+ return timeArray.strftime("%H:%M")
+
+
+def calcWindDirection(windDirection):
+ dirs = ['N', 'NNE', 'NE', 'ENE', 'E', 'ESE', 'SE', 'SSE', 'S', 'SSW', 'SW', 'WSW', 'W', 'WNW', 'NW', 'NNW']
+ ix = round(windDirection / (360. / len(dirs)))
+ return dirs[ix % len(dirs)]
+
+
+@listener(command="weather",
+ description="查询天气",
+ parameters="<城市>")
+async def weather(_: Client, message: Message):
+ of not message.arguments:
+ return await message.edit("出错了呜呜呜 ~ 无效的参数。")
+ try:
+ req = await client.get(
+ "http://api.openweathermap.org/data/2.5/weather?appid=973e8a21e358ee9d30b47528b43a8746&units=metric&lang"
+ "=zh_cn&q=" + message.arguments)
+ if req.status_code == 200:
+ data = req.json()
+ cityName = "{}, {}".format(data["name"], data["sys"]["country"])
+ timeZoneShift = data["timezone"]
+ temp_Max = round(data["main"]["temp_max"], 2)
+ temp_Min = round(data["main"]["temp_min"], 2)
+ pressure = data["main"]["pressure"]
+ humidity = data["main"]["humidity"]
+ windSpeed = data["wind"]["speed"]
+ windDirection = calcWindDirection(data["wind"]["deg"])
+ sunriseTimeunix = data["sys"]["sunrise"]
+ sunriseTime = timestamp_to_time(sunriseTimeunix, timeZoneShift)
+ sunsetTimeunix = data["sys"]["sunset"]
+ sunsetTime = timestamp_to_time(sunsetTimeunix, timeZoneShift)
+ fellsTemp = data["main"]["feels_like"]
+ tempInC = round(data["main"]["temp"], 2)
+ tempInF = round((1.8 * tempInC) + 32, 2)
+ icon = data["weather"][0]["icon"]
+ desc = data["weather"][0]["description"]
+ res = "{} {}{} 💨{} {}m/s\n大气🌡 {}℃ ({}℉) 💦 {}% \n体感🌡 {}℃\n气压 {}hpa\n🌅{} 🌇{} ".format(
+ cityName, icons[icon], desc, windDirection, windSpeed, tempInC, tempInF, humidity, fellsTemp, pressure,
+ sunriseTime, sunsetTime
+ )
+ await message.edit(res)
+ if req.status_code == 404:
+ await message.edit("出错了呜呜呜 ~ 无效的城市名,请使用拼音输入 ~ ")
+ return
+ except Exception:
+ await message.edit("出错了呜呜呜 ~ 无法访问到 openweathermap.org 。")