-
Notifications
You must be signed in to change notification settings - Fork 1
/
main.py
129 lines (119 loc) · 4.35 KB
/
main.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
#MIT License
#Copyright (c) 2021 Sathishzus
#Permission is hereby granted, free of charge, to any person obtaining a copy
#of this software and associated documentation files (the "Software"), to deal
#in the Software without restriction, including without limitation the rights
#to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
#copies of the Software, and to permit persons to whom the Software is
#furnished to do so, subject to the following conditions:
#The above copyright notice and this permission notice shall be included in all
#copies or substantial portions of the Software.
#THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
#IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
#FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
#AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
#LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
#OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
#SOFTWARE.
from pyrogram.raw import functions, types
from pyrogram import Client, idle
from pyromod import listen
from config import Config
STATUS=Config.STATUS
USER=Config.USER
bot = Client(
"InstaSessibon",
bot_token=Config.BOT_TOKEN,
api_id=Config.API_ID,
api_hash=Config.API_HASH,
workers=50,
plugins=dict(root="plugins")
)
async def main():
async with bot:
await bot.download_media(Config.INSTA_SESSIONFILE_ID, file_name=f"./{Config.USER}")
Config.L.load_session_from_file(USER, filename=f"./{USER}")
STATUS.add(1)
if Config.INSTA_SESSIONFILE_ID:
bot.run(main())
bot.start()
bot.send(
functions.bots.SetBotCommands(
commands=[
types.BotCommand(
command="start",
description="Check if bot alive"
),
types.BotCommand(
command="help",
description="How to use"
),
types.BotCommand(
command="login",
description="login into your Instagram account"
),
types.BotCommand(
command="logout",
description="Logout from Instagram"
),
types.BotCommand(
command="account",
description="Shows details of logged in account"
),
types.BotCommand(
command="posts",
description="Download all posts from given username"
),
types.BotCommand(
command="feed",
description="Download posts in your feed"
),
types.BotCommand(
command="igtv",
description="Download IGTV videos of given username"
),
types.BotCommand(
command="saved",
description="Download specified number of posts from your saved posts "
),
types.BotCommand(
command="story",
description="Download stories of given username"
),
types.BotCommand(
command="stories",
description="Downloads stories off all your followees"
),
types.BotCommand(
command="followers",
description="Sends a list of followers of given username"
),
types.BotCommand(
command="followees",
description="Sends a list followees of given username"
),
types.BotCommand(
command="fans",
description="Get a list of followees who is following back."
),
types.BotCommand(
command="notfollowing",
description="Get a list of followees who is not following back."
),
types.BotCommand(
command="tagged",
description="Download all posts tagged with given username"
),
types.BotCommand(
command="highlights",
description="Downloads highlights from given username"
),
types.BotCommand(
command="restart",
description="Stop all processes and restart bot"
),
]
)
)
idle()
bot.stop()