130600
This commit is contained in:
10
.idea/TGSendMess.iml
generated
Normal file
10
.idea/TGSendMess.iml
generated
Normal file
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="PYTHON_MODULE" version="4">
|
||||
<component name="NewModuleRootManager">
|
||||
<content url="file://$MODULE_DIR$">
|
||||
<excludeFolder url="file://$MODULE_DIR$/.venv" />
|
||||
</content>
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
</module>
|
||||
6
.idea/encodings.xml
generated
Normal file
6
.idea/encodings.xml
generated
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="Encoding">
|
||||
<file url="PROJECT" charset="windows-1251" />
|
||||
</component>
|
||||
</project>
|
||||
6
.idea/inspectionProfiles/Project_Default.xml
generated
Normal file
6
.idea/inspectionProfiles/Project_Default.xml
generated
Normal file
@@ -0,0 +1,6 @@
|
||||
<component name="InspectionProjectProfileManager">
|
||||
<profile version="1.0">
|
||||
<option name="myName" value="Project Default" />
|
||||
<inspection_tool class="PyInterpreterInspection" enabled="false" level="WARNING" enabled_by_default="false" />
|
||||
</profile>
|
||||
</component>
|
||||
6
.idea/inspectionProfiles/profiles_settings.xml
generated
Normal file
6
.idea/inspectionProfiles/profiles_settings.xml
generated
Normal file
@@ -0,0 +1,6 @@
|
||||
<component name="InspectionProjectProfileManager">
|
||||
<settings>
|
||||
<option name="USE_PROJECT_PROFILE" value="false" />
|
||||
<version value="1.0" />
|
||||
</settings>
|
||||
</component>
|
||||
7
.idea/misc.xml
generated
Normal file
7
.idea/misc.xml
generated
Normal file
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="Black">
|
||||
<option name="sdkName" value="Python 3.11 (TGSendMess)" />
|
||||
</component>
|
||||
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.11 (TGSendMess)" project-jdk-type="Python SDK" />
|
||||
</project>
|
||||
8
.idea/modules.xml
generated
Normal file
8
.idea/modules.xml
generated
Normal file
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectModuleManager">
|
||||
<modules>
|
||||
<module fileurl="file://$PROJECT_DIR$/.idea/TGSendMess.iml" filepath="$PROJECT_DIR$/.idea/TGSendMess.iml" />
|
||||
</modules>
|
||||
</component>
|
||||
</project>
|
||||
6
.idea/vcs.xml
generated
Normal file
6
.idea/vcs.xml
generated
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
||||
</component>
|
||||
</project>
|
||||
237
.idea/workspace.xml
generated
Normal file
237
.idea/workspace.xml
generated
Normal file
@@ -0,0 +1,237 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="AutoImportSettings">
|
||||
<option name="autoReloadType" value="SELECTIVE" />
|
||||
</component>
|
||||
<component name="ChangeListManager">
|
||||
<list default="true" id="581e0c36-cd5c-4516-b40f-56b4247c4a5d" name="Changes" comment="">
|
||||
<change afterPath="$PROJECT_DIR$/.idea/TGSendMess.iml" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/.idea/encodings.xml" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/.idea/inspectionProfiles/Project_Default.xml" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/.idea/inspectionProfiles/profiles_settings.xml" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/.idea/misc.xml" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/.idea/modules.xml" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/.idea/vcs.xml" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/cookies.txt" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/cookiesinst.txt" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/downinstagram(01).py" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/downinstagram(OLD).py" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/downinstagram.py" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/downyoutube(OLD).py" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/downyoutube.py" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/main.py" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/mainai(ORG).py" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/mainai.py" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/mainai_01.py" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/session-bdg9840" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/testproxy.py" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/unitib.py" afterDir="false" />
|
||||
</list>
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
||||
<option name="LAST_RESOLUTION" value="IGNORE" />
|
||||
</component>
|
||||
<component name="FileTemplateManagerImpl">
|
||||
<option name="RECENT_TEMPLATES">
|
||||
<list>
|
||||
<option value="Python Script" />
|
||||
</list>
|
||||
</option>
|
||||
</component>
|
||||
<component name="Git.Settings">
|
||||
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
|
||||
</component>
|
||||
<component name="ProjectColorInfo">{
|
||||
"associatedIndex": 7
|
||||
}</component>
|
||||
<component name="ProjectId" id="2hmtn1iMUtLj9Fw29l2sm6mf4Hb" />
|
||||
<component name="ProjectLevelVcsManager" settingsEditedManually="true" />
|
||||
<component name="ProjectViewState">
|
||||
<option name="hideEmptyMiddlePackages" value="true" />
|
||||
<option name="showLibraryContents" value="true" />
|
||||
</component>
|
||||
<component name="PropertiesComponent">{
|
||||
"keyToString": {
|
||||
"Python.downinstagram(01).executor": "Run",
|
||||
"Python.downinstagram.executor": "Run",
|
||||
"Python.downyoutube.executor": "Run",
|
||||
"Python.main.executor": "Run",
|
||||
"Python.mainai.executor": "Run",
|
||||
"Python.testproxy.executor": "Run",
|
||||
"Python.unitib.executor": "Run",
|
||||
"RunOnceActivity.OpenProjectViewOnStart": "true",
|
||||
"RunOnceActivity.ShowReadmeOnStart": "true",
|
||||
"SHARE_PROJECT_CONFIGURATION_FILES": "true",
|
||||
"git-widget-placeholder": "master",
|
||||
"last_opened_file_path": "E:/code/python/BOTS/TGSendMess"
|
||||
}
|
||||
}</component>
|
||||
<component name="RecentsManager">
|
||||
<key name="CopyFile.RECENT_KEYS">
|
||||
<recent name="E:\code\python\BOTS\TGSendMess" />
|
||||
</key>
|
||||
</component>
|
||||
<component name="RunManager" selected="Python.downinstagram">
|
||||
<configuration name="downinstagram" type="PythonConfigurationType" factoryName="Python" temporary="true" nameIsGenerated="true">
|
||||
<module name="TGSendMess" />
|
||||
<option name="ENV_FILES" value="" />
|
||||
<option name="INTERPRETER_OPTIONS" value="" />
|
||||
<option name="PARENT_ENVS" value="true" />
|
||||
<envs>
|
||||
<env name="PYTHONUNBUFFERED" value="1" />
|
||||
</envs>
|
||||
<option name="SDK_HOME" value="" />
|
||||
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
|
||||
<option name="IS_MODULE_SDK" value="true" />
|
||||
<option name="ADD_CONTENT_ROOTS" value="true" />
|
||||
<option name="ADD_SOURCE_ROOTS" value="true" />
|
||||
<option name="SCRIPT_NAME" value="$PROJECT_DIR$/downinstagram.py" />
|
||||
<option name="PARAMETERS" value="" />
|
||||
<option name="SHOW_COMMAND_LINE" value="false" />
|
||||
<option name="EMULATE_TERMINAL" value="false" />
|
||||
<option name="MODULE_MODE" value="false" />
|
||||
<option name="REDIRECT_INPUT" value="false" />
|
||||
<option name="INPUT_FILE" value="" />
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
<configuration name="downinstagram(01)" type="PythonConfigurationType" factoryName="Python" temporary="true" nameIsGenerated="true">
|
||||
<module name="TGSendMess" />
|
||||
<option name="ENV_FILES" value="" />
|
||||
<option name="INTERPRETER_OPTIONS" value="" />
|
||||
<option name="PARENT_ENVS" value="true" />
|
||||
<envs>
|
||||
<env name="PYTHONUNBUFFERED" value="1" />
|
||||
</envs>
|
||||
<option name="SDK_HOME" value="" />
|
||||
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
|
||||
<option name="IS_MODULE_SDK" value="true" />
|
||||
<option name="ADD_CONTENT_ROOTS" value="true" />
|
||||
<option name="ADD_SOURCE_ROOTS" value="true" />
|
||||
<option name="SCRIPT_NAME" value="E:\code\python\BOTS\TGSendMess\downinstagram(01).py" />
|
||||
<option name="PARAMETERS" value="" />
|
||||
<option name="SHOW_COMMAND_LINE" value="false" />
|
||||
<option name="EMULATE_TERMINAL" value="false" />
|
||||
<option name="MODULE_MODE" value="false" />
|
||||
<option name="REDIRECT_INPUT" value="false" />
|
||||
<option name="INPUT_FILE" value="" />
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
<configuration name="downyoutube" type="PythonConfigurationType" factoryName="Python" temporary="true" nameIsGenerated="true">
|
||||
<module name="TGSendMess" />
|
||||
<option name="ENV_FILES" value="" />
|
||||
<option name="INTERPRETER_OPTIONS" value="" />
|
||||
<option name="PARENT_ENVS" value="true" />
|
||||
<envs>
|
||||
<env name="PYTHONUNBUFFERED" value="1" />
|
||||
</envs>
|
||||
<option name="SDK_HOME" value="" />
|
||||
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
|
||||
<option name="IS_MODULE_SDK" value="true" />
|
||||
<option name="ADD_CONTENT_ROOTS" value="true" />
|
||||
<option name="ADD_SOURCE_ROOTS" value="true" />
|
||||
<option name="SCRIPT_NAME" value="$PROJECT_DIR$/downyoutube.py" />
|
||||
<option name="PARAMETERS" value="" />
|
||||
<option name="SHOW_COMMAND_LINE" value="false" />
|
||||
<option name="EMULATE_TERMINAL" value="false" />
|
||||
<option name="MODULE_MODE" value="false" />
|
||||
<option name="REDIRECT_INPUT" value="false" />
|
||||
<option name="INPUT_FILE" value="" />
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
<configuration name="main" type="PythonConfigurationType" factoryName="Python" nameIsGenerated="true">
|
||||
<module name="TGSendMess" />
|
||||
<option name="ENV_FILES" value="" />
|
||||
<option name="INTERPRETER_OPTIONS" value="" />
|
||||
<option name="PARENT_ENVS" value="true" />
|
||||
<envs>
|
||||
<env name="PYTHONUNBUFFERED" value="1" />
|
||||
</envs>
|
||||
<option name="SDK_HOME" value="" />
|
||||
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
|
||||
<option name="IS_MODULE_SDK" value="true" />
|
||||
<option name="ADD_CONTENT_ROOTS" value="true" />
|
||||
<option name="ADD_SOURCE_ROOTS" value="true" />
|
||||
<option name="SCRIPT_NAME" value="$PROJECT_DIR$/main.py" />
|
||||
<option name="PARAMETERS" value="" />
|
||||
<option name="SHOW_COMMAND_LINE" value="false" />
|
||||
<option name="EMULATE_TERMINAL" value="false" />
|
||||
<option name="MODULE_MODE" value="false" />
|
||||
<option name="REDIRECT_INPUT" value="false" />
|
||||
<option name="INPUT_FILE" value="" />
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
<configuration name="testproxy" type="PythonConfigurationType" factoryName="Python" temporary="true" nameIsGenerated="true">
|
||||
<module name="TGSendMess" />
|
||||
<option name="ENV_FILES" value="" />
|
||||
<option name="INTERPRETER_OPTIONS" value="" />
|
||||
<option name="PARENT_ENVS" value="true" />
|
||||
<envs>
|
||||
<env name="PYTHONUNBUFFERED" value="1" />
|
||||
</envs>
|
||||
<option name="SDK_HOME" value="" />
|
||||
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
|
||||
<option name="IS_MODULE_SDK" value="true" />
|
||||
<option name="ADD_CONTENT_ROOTS" value="true" />
|
||||
<option name="ADD_SOURCE_ROOTS" value="true" />
|
||||
<option name="SCRIPT_NAME" value="$PROJECT_DIR$/testproxy.py" />
|
||||
<option name="PARAMETERS" value="" />
|
||||
<option name="SHOW_COMMAND_LINE" value="false" />
|
||||
<option name="EMULATE_TERMINAL" value="false" />
|
||||
<option name="MODULE_MODE" value="false" />
|
||||
<option name="REDIRECT_INPUT" value="false" />
|
||||
<option name="INPUT_FILE" value="" />
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
<configuration name="unitib" type="PythonConfigurationType" factoryName="Python" temporary="true" nameIsGenerated="true">
|
||||
<module name="TGSendMess" />
|
||||
<option name="ENV_FILES" value="" />
|
||||
<option name="INTERPRETER_OPTIONS" value="" />
|
||||
<option name="PARENT_ENVS" value="true" />
|
||||
<envs>
|
||||
<env name="PYTHONUNBUFFERED" value="1" />
|
||||
</envs>
|
||||
<option name="SDK_HOME" value="" />
|
||||
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
|
||||
<option name="IS_MODULE_SDK" value="true" />
|
||||
<option name="ADD_CONTENT_ROOTS" value="true" />
|
||||
<option name="ADD_SOURCE_ROOTS" value="true" />
|
||||
<option name="SCRIPT_NAME" value="$PROJECT_DIR$/unitib.py" />
|
||||
<option name="PARAMETERS" value="" />
|
||||
<option name="SHOW_COMMAND_LINE" value="false" />
|
||||
<option name="EMULATE_TERMINAL" value="false" />
|
||||
<option name="MODULE_MODE" value="false" />
|
||||
<option name="REDIRECT_INPUT" value="false" />
|
||||
<option name="INPUT_FILE" value="" />
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
<recent_temporary>
|
||||
<list>
|
||||
<item itemvalue="Python.downinstagram" />
|
||||
<item itemvalue="Python.downinstagram(01)" />
|
||||
<item itemvalue="Python.testproxy" />
|
||||
<item itemvalue="Python.unitib" />
|
||||
<item itemvalue="Python.downyoutube" />
|
||||
</list>
|
||||
</recent_temporary>
|
||||
</component>
|
||||
<component name="SharedIndexes">
|
||||
<attachedChunks>
|
||||
<set>
|
||||
<option value="bundled-python-sdk-09665e90c3a7-d3b881c8e49f-com.jetbrains.pycharm.community.sharedIndexes.bundled-PC-233.15026.15" />
|
||||
</set>
|
||||
</attachedChunks>
|
||||
</component>
|
||||
<component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
|
||||
<component name="TaskManager">
|
||||
<task active="true" id="Default" summary="Default task">
|
||||
<changelist id="581e0c36-cd5c-4516-b40f-56b4247c4a5d" name="Changes" comment="" />
|
||||
<created>1718211243865</created>
|
||||
<option name="number" value="Default" />
|
||||
<option name="presentableId" value="Default" />
|
||||
<updated>1718211243865</updated>
|
||||
</task>
|
||||
<servers />
|
||||
</component>
|
||||
</project>
|
||||
100
cookies.txt
Normal file
100
cookies.txt
Normal file
@@ -0,0 +1,100 @@
|
||||
[
|
||||
{
|
||||
"domain": ".youtube.com",
|
||||
"expirationDate": 1749808820,
|
||||
"hostOnly": false,
|
||||
"httpOnly": true,
|
||||
"name": "__Secure-1PSIDTS",
|
||||
"path": "/",
|
||||
"sameSite": "unspecified",
|
||||
"secure": true,
|
||||
"session": false,
|
||||
"storeId": "0",
|
||||
"value": "sidts-CjIB3EgAEig6x8Zi1GICOToEqD1x6GhwHJgG5R0j5GV6t-27tchkeyT-FHm0-Y0xCYMJPRAA",
|
||||
"id": 1
|
||||
},
|
||||
{
|
||||
"domain": ".youtube.com",
|
||||
"expirationDate": 1752767720,
|
||||
"hostOnly": false,
|
||||
"httpOnly": false,
|
||||
"name": "__Secure-3PAPISID",
|
||||
"path": "/",
|
||||
"sameSite": "no_restriction",
|
||||
"secure": true,
|
||||
"session": false,
|
||||
"storeId": "0",
|
||||
"value": "FfkpbSW7qg4cjkJY/AkpC4q-O3p3b3L0q-",
|
||||
"id": 2
|
||||
},
|
||||
{
|
||||
"domain": ".youtube.com",
|
||||
"expirationDate": 1752767720,
|
||||
"hostOnly": false,
|
||||
"httpOnly": true,
|
||||
"name": "__Secure-3PSID",
|
||||
"path": "/",
|
||||
"sameSite": "no_restriction",
|
||||
"secure": true,
|
||||
"session": false,
|
||||
"storeId": "0",
|
||||
"value": "g.a000kghsPtdg15TJlEatSe9kUmdKojmpNxnkmBt3FJuuihP-pke-Ncw6Apxvn2la-U4KQfcIdAACgYKAZUSARASFQHGX2MiRWMw-0DwApH2_DAj01DK8hoVAUF8yKoc_FwmiTGATSiOQNJNuh0M0076",
|
||||
"id": 3
|
||||
},
|
||||
{
|
||||
"domain": ".youtube.com",
|
||||
"expirationDate": 1749808881,
|
||||
"hostOnly": false,
|
||||
"httpOnly": true,
|
||||
"name": "__Secure-3PSIDCC",
|
||||
"path": "/",
|
||||
"sameSite": "no_restriction",
|
||||
"secure": true,
|
||||
"session": false,
|
||||
"storeId": "0",
|
||||
"value": "AKEyXzXyWZBYFlRUBDxnUBiaB9ay97nbpNZJr2GU0BBm9sQNxkR66DBAWuu4vJQUBjgVNjsFtQ",
|
||||
"id": 4
|
||||
},
|
||||
{
|
||||
"domain": ".youtube.com",
|
||||
"expirationDate": 1749808820,
|
||||
"hostOnly": false,
|
||||
"httpOnly": true,
|
||||
"name": "__Secure-3PSIDTS",
|
||||
"path": "/",
|
||||
"sameSite": "no_restriction",
|
||||
"secure": true,
|
||||
"session": false,
|
||||
"storeId": "0",
|
||||
"value": "sidts-CjIB3EgAEig6x8Zi1GICOToEqD1x6GhwHJgG5R0j5GV6t-27tchkeyT-FHm0-Y0xCYMJPRAA",
|
||||
"id": 5
|
||||
},
|
||||
{
|
||||
"domain": ".youtube.com",
|
||||
"expirationDate": 1752767720,
|
||||
"hostOnly": false,
|
||||
"httpOnly": true,
|
||||
"name": "LOGIN_INFO",
|
||||
"path": "/",
|
||||
"sameSite": "no_restriction",
|
||||
"secure": true,
|
||||
"session": false,
|
||||
"storeId": "0",
|
||||
"value": "AFmmF2swRAIgcYKxrqSte4Yn5n5-KOHYUhNIxCGXCRKkhwfEjJMnGqwCIHkLK_sRfFRA7MWIw3CiUrAKGsuwajDYekkkl6scjnlD:QUQ3MjNmeTNRTFQxQmtFWGFfVWVlM25IZ2xUeWZla0JOZVB0cUdVNkVZZnZEODRYUVh6WlJVWklTaURfN1hEa3R6cEZwVnI4ZXMyNlZ5QmJDMUROWDUySHg3cllOdlpoY1FlU1BTNWczS19tb0ZsWnBMbU95cmk2VVBac19Yd1h6MUhIWG14Q19kR3lYdFpadEprc01CWUMxblZPQjVvQzBn",
|
||||
"id": 6
|
||||
},
|
||||
{
|
||||
"domain": ".youtube.com",
|
||||
"expirationDate": 1752832881,
|
||||
"hostOnly": false,
|
||||
"httpOnly": false,
|
||||
"name": "PREF",
|
||||
"path": "/",
|
||||
"sameSite": "unspecified",
|
||||
"secure": true,
|
||||
"session": false,
|
||||
"storeId": "0",
|
||||
"value": "f4=4000000&f6=40000000&tz=Europe.Moscow&f7=100",
|
||||
"id": 7
|
||||
}
|
||||
]
|
||||
169
cookiesinst.txt
Normal file
169
cookiesinst.txt
Normal file
@@ -0,0 +1,169 @@
|
||||
[
|
||||
{
|
||||
"domain": ".instagram.com",
|
||||
"expirationDate": 1749755732,
|
||||
"hostOnly": false,
|
||||
"httpOnly": false,
|
||||
"name": "csrftoken",
|
||||
"path": "/",
|
||||
"sameSite": "unspecified",
|
||||
"secure": true,
|
||||
"session": false,
|
||||
"storeId": "0",
|
||||
"value": "b0VvCnt6bpeRLHuNL05HSBGgRHPlity6",
|
||||
"id": 1
|
||||
},
|
||||
{
|
||||
"domain": ".instagram.com",
|
||||
"expirationDate": 1752863864,
|
||||
"hostOnly": false,
|
||||
"httpOnly": true,
|
||||
"name": "datr",
|
||||
"path": "/",
|
||||
"sameSite": "no_restriction",
|
||||
"secure": true,
|
||||
"session": false,
|
||||
"storeId": "0",
|
||||
"value": "djxrZgZtcBzybTD2CPPsp5jo",
|
||||
"id": 2
|
||||
},
|
||||
{
|
||||
"domain": ".instagram.com",
|
||||
"expirationDate": 1718910575,
|
||||
"hostOnly": false,
|
||||
"httpOnly": false,
|
||||
"name": "dpr",
|
||||
"path": "/",
|
||||
"sameSite": "no_restriction",
|
||||
"secure": true,
|
||||
"session": false,
|
||||
"storeId": "0",
|
||||
"value": "1.25",
|
||||
"id": 3
|
||||
},
|
||||
{
|
||||
"domain": ".instagram.com",
|
||||
"expirationDate": 1726082132,
|
||||
"hostOnly": false,
|
||||
"httpOnly": false,
|
||||
"name": "ds_user_id",
|
||||
"path": "/",
|
||||
"sameSite": "unspecified",
|
||||
"secure": true,
|
||||
"session": false,
|
||||
"storeId": "0",
|
||||
"value": "67280582376",
|
||||
"id": 4
|
||||
},
|
||||
{
|
||||
"domain": ".instagram.com",
|
||||
"expirationDate": 1749839967,
|
||||
"hostOnly": false,
|
||||
"httpOnly": true,
|
||||
"name": "ig_did",
|
||||
"path": "/",
|
||||
"sameSite": "unspecified",
|
||||
"secure": true,
|
||||
"session": false,
|
||||
"storeId": "0",
|
||||
"value": "ACAA553D-3700-44A5-BEC5-07D79F5D35A4",
|
||||
"id": 5
|
||||
},
|
||||
{
|
||||
"domain": ".instagram.com",
|
||||
"expirationDate": 1749839872,
|
||||
"hostOnly": false,
|
||||
"httpOnly": false,
|
||||
"name": "ig_nrcb",
|
||||
"path": "/",
|
||||
"sameSite": "unspecified",
|
||||
"secure": true,
|
||||
"session": false,
|
||||
"storeId": "0",
|
||||
"value": "1",
|
||||
"id": 6
|
||||
},
|
||||
{
|
||||
"domain": ".instagram.com",
|
||||
"expirationDate": 1752863863,
|
||||
"hostOnly": false,
|
||||
"httpOnly": false,
|
||||
"name": "mid",
|
||||
"path": "/",
|
||||
"sameSite": "unspecified",
|
||||
"secure": true,
|
||||
"session": false,
|
||||
"storeId": "0",
|
||||
"value": "Zms8dgALAAH52BW2v8XkpcE5vi3C",
|
||||
"id": 7
|
||||
},
|
||||
{
|
||||
"domain": ".instagram.com",
|
||||
"expirationDate": 1752863968,
|
||||
"hostOnly": false,
|
||||
"httpOnly": true,
|
||||
"name": "ps_l",
|
||||
"path": "/",
|
||||
"sameSite": "lax",
|
||||
"secure": true,
|
||||
"session": false,
|
||||
"storeId": "0",
|
||||
"value": "1",
|
||||
"id": 8
|
||||
},
|
||||
{
|
||||
"domain": ".instagram.com",
|
||||
"expirationDate": 1752863968,
|
||||
"hostOnly": false,
|
||||
"httpOnly": true,
|
||||
"name": "ps_n",
|
||||
"path": "/",
|
||||
"sameSite": "no_restriction",
|
||||
"secure": true,
|
||||
"session": false,
|
||||
"storeId": "0",
|
||||
"value": "1",
|
||||
"id": 9
|
||||
},
|
||||
{
|
||||
"domain": ".instagram.com",
|
||||
"hostOnly": false,
|
||||
"httpOnly": true,
|
||||
"name": "rur",
|
||||
"path": "/",
|
||||
"sameSite": "lax",
|
||||
"secure": true,
|
||||
"session": true,
|
||||
"storeId": "0",
|
||||
"value": "\"NCG\\05467280582376\\0541749842132:01f78301f9efc3e2cc154c1a54027e9eb25b3082dcbb57ef5dd97d150546e8fe16e3581f\"",
|
||||
"id": 10
|
||||
},
|
||||
{
|
||||
"domain": ".instagram.com",
|
||||
"expirationDate": 1749841730,
|
||||
"hostOnly": false,
|
||||
"httpOnly": true,
|
||||
"name": "sessionid",
|
||||
"path": "/",
|
||||
"sameSite": "unspecified",
|
||||
"secure": true,
|
||||
"session": false,
|
||||
"storeId": "0",
|
||||
"value": "67280582376%3A20ESIE9VAJ6jdr%3A29%3AAYddxd1rRNeY8tdrBEQ1T8aXfRqh-jWJDosM5aYuDg",
|
||||
"id": 11
|
||||
},
|
||||
{
|
||||
"domain": ".instagram.com",
|
||||
"expirationDate": 1718910575,
|
||||
"hostOnly": false,
|
||||
"httpOnly": false,
|
||||
"name": "wd",
|
||||
"path": "/",
|
||||
"sameSite": "lax",
|
||||
"secure": true,
|
||||
"session": false,
|
||||
"storeId": "0",
|
||||
"value": "916x1024",
|
||||
"id": 12
|
||||
}
|
||||
]
|
||||
79
downinstagram(01).py
Normal file
79
downinstagram(01).py
Normal file
@@ -0,0 +1,79 @@
|
||||
#!/usr/bin/python
|
||||
# -*- coding: utf-8 -*-
|
||||
import logging
|
||||
import os
|
||||
import asyncio
|
||||
from aiogram import Bot, Dispatcher, types
|
||||
from aiogram.utils import executor
|
||||
import instaloader
|
||||
|
||||
# Ваш токен от BotFather
|
||||
API_TOKEN = '5285575539:AAGu_qK23xq98fta1fJmV9oyDYoq9yhzeHM'
|
||||
|
||||
# Настройка прокси
|
||||
PROXY_URL = 'http://185.250.148.233:8899'
|
||||
PROXY_AUTH = ('bots_man', 'Ax123456')
|
||||
|
||||
# Настройка логирования с записью в файл
|
||||
logging.basicConfig(
|
||||
level=logging.INFO,
|
||||
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
|
||||
handlers=[
|
||||
logging.FileHandler('bot_instagram_logs.log'),
|
||||
logging.StreamHandler()
|
||||
]
|
||||
)
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
# Инициализация бота и диспетчера с использованием прокси
|
||||
async def create_bot():
|
||||
bot = Bot(token=API_TOKEN)
|
||||
dp = Dispatcher(bot)
|
||||
return dp, bot
|
||||
|
||||
# Функция для скачивания видео с Instagram с использованием cookies
|
||||
def download_instagram_video(url):
|
||||
L = instaloader.Instaloader()
|
||||
# Загрузка cookies
|
||||
L.load_session_from_file('bdg9840', 'session-bdg9840')
|
||||
try:
|
||||
post = instaloader.Post.from_shortcode(L.context, url.split("/")[-2])
|
||||
if post.is_video:
|
||||
L.download_post(post, target="downloads")
|
||||
video_filename = next((f for f in os.listdir("downloads") if f.endswith('.mp4')), None)
|
||||
if video_filename:
|
||||
video_path = os.path.join("downloads", video_filename)
|
||||
return video_path, post.title
|
||||
return None, None
|
||||
except Exception as e:
|
||||
logger.error(f"Ошибка при скачивании видео: {e}")
|
||||
return None, None
|
||||
|
||||
async def on_startup(dp):
|
||||
logger.info('Start polling.')
|
||||
|
||||
# Обработчик команды /start
|
||||
async def send_welcome(message: types.Message):
|
||||
await message.reply("Привет! Я бот для скачивания видео с Instagram. Отправьте ссылку на видео чтобы начать.")
|
||||
|
||||
# Обработчик получения ссылки на Instagram
|
||||
async def handle_instagram_link(message: types.Message):
|
||||
link = message.text
|
||||
await message.reply("Видео скачивается, пожалуйста подождите...")
|
||||
|
||||
video_file, video_title = download_instagram_video(link)
|
||||
if video_file:
|
||||
caption = f"Вот ваше видео с Instagram: {video_title}" if video_title else "Вот ваше видео с Instagram"
|
||||
with open(video_file, 'rb') as video:
|
||||
await bot.send_video(message.chat.id, video, caption=caption)
|
||||
os.remove(video_file)
|
||||
else:
|
||||
await message.reply("Произошла ошибка при скачивании видео. Пожалуйста, попробуйте ещё раз.")
|
||||
|
||||
if __name__ == '__main__':
|
||||
dp, bot = asyncio.run(create_bot())
|
||||
|
||||
dp.register_message_handler(send_welcome, commands=['start'])
|
||||
dp.register_message_handler(handle_instagram_link)
|
||||
|
||||
executor.start_polling(dp, skip_updates=True, on_startup=on_startup)
|
||||
64
downinstagram(OLD).py
Normal file
64
downinstagram(OLD).py
Normal file
@@ -0,0 +1,64 @@
|
||||
#!/usr/bin/python
|
||||
# -*- coding: utf-8 -*-
|
||||
import logging
|
||||
import os
|
||||
from aiogram import Bot, Dispatcher, types
|
||||
from aiogram.types import InlineKeyboardMarkup, InlineKeyboardButton
|
||||
from aiogram.utils import executor
|
||||
import instaloader
|
||||
|
||||
# Ваш токен от BotFather
|
||||
API_TOKEN = '5285575539:AAGu_qK23xq98fta1fJmV9oyDYoq9yhzeHM'
|
||||
|
||||
# Настройка логирования с записью в файл
|
||||
logging.basicConfig(
|
||||
level=logging.INFO,
|
||||
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
|
||||
handlers=[
|
||||
logging.FileHandler('bot_instagram_logs.log'),
|
||||
logging.StreamHandler()
|
||||
]
|
||||
)
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
# Инициализация бота и диспетчера
|
||||
bot = Bot(token=API_TOKEN)
|
||||
dp = Dispatcher(bot)
|
||||
|
||||
# Функция для скачивания видео с Instagram
|
||||
def download_instagram_video(url):
|
||||
L = instaloader.Instaloader()
|
||||
try:
|
||||
post = instaloader.Post.from_shortcode(L.context, url.split("/")[-2])
|
||||
if post.is_video:
|
||||
L.download_post(post, target="downloads")
|
||||
video_filename = next((f for f in os.listdir("downloads") if f.endswith('.mp4')), None)
|
||||
if video_filename:
|
||||
return os.path.join("downloads", video_filename)
|
||||
return None
|
||||
except Exception as e:
|
||||
logger.error(f"Ошибка при скачивании видео: {e}")
|
||||
return None
|
||||
|
||||
# Обработчик команды /start
|
||||
@dp.message_handler(commands=['start'])
|
||||
async def send_welcome(message: types.Message):
|
||||
await message.reply("Привет! Я бот для скачивания видео с Instagram. Отправьте ссылку на видео чтобы начать.")
|
||||
|
||||
# Обработчик получения ссылки на Instagram
|
||||
@dp.message_handler()
|
||||
async def handle_instagram_link(message: types.Message):
|
||||
link = message.text
|
||||
await message.reply("Видео скачивается, пожалуйста подождите...")
|
||||
|
||||
video_file = download_instagram_video(link)
|
||||
if video_file:
|
||||
with open(video_file, 'rb') as video:
|
||||
await bot.send_video(message.chat.id, video, caption="Вот ваше видео с Instagram")
|
||||
os.remove(video_file)
|
||||
else:
|
||||
await message.reply("Произошла ошибка при скачивании видео. Пожалуйста, попробуйте ещё раз.")
|
||||
|
||||
if __name__ == '__main__':
|
||||
logger.info('Start polling.')
|
||||
executor.start_polling(dp, skip_updates=True)
|
||||
81
downinstagram.py
Normal file
81
downinstagram.py
Normal file
@@ -0,0 +1,81 @@
|
||||
#!/usr/bin/python
|
||||
# -*- coding: utf-8 -*-
|
||||
import logging
|
||||
import os
|
||||
from aiogram import Bot, Dispatcher, types
|
||||
from aiogram.utils import executor
|
||||
import instaloader
|
||||
|
||||
# Ваш токен от BotFather
|
||||
API_TOKEN = '5285575539:AAGu_qK23xq98fta1fJmV9oyDYoq9yhzeHM'
|
||||
|
||||
# Ваши учетные данные Instagram
|
||||
INSTAGRAM_USERNAME = 'bdg9840'
|
||||
INSTAGRAM_PASSWORD = '-4m5kRsf_xesAjZ'
|
||||
|
||||
|
||||
# Путь к файлу cookie
|
||||
COOKIE_FILE = 'cookiesinst.txt'
|
||||
|
||||
# Настройка логирования с записью в файл
|
||||
logging.basicConfig(
|
||||
level=logging.INFO,
|
||||
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
|
||||
handlers=[
|
||||
logging.FileHandler('bot_instagram_logs.log'),
|
||||
logging.StreamHandler()
|
||||
]
|
||||
)
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
# Инициализация бота и диспетчера
|
||||
bot = Bot(token=API_TOKEN)
|
||||
dp = Dispatcher(bot)
|
||||
|
||||
# Функция для скачивания видео с Instagram
|
||||
async def download_instagram_video(url):
|
||||
L = instaloader.Instaloader()
|
||||
|
||||
# Проверяем, существует ли файл cookie
|
||||
if os.path.isfile(COOKIE_FILE):
|
||||
L.load_session_from_file(INSTAGRAM_USERNAME, COOKIE_FILE)
|
||||
else:
|
||||
session = instaloader.Session()
|
||||
session.login(INSTAGRAM_USERNAME, INSTAGRAM_PASSWORD)
|
||||
L.context = instaloader.context.Context(session)
|
||||
L.save_session_to_file(COOKIE_FILE)
|
||||
|
||||
try:
|
||||
post = instaloader.Post.from_shortcode(L.context, url.split("/")[-2])
|
||||
if post.is_video:
|
||||
L.download_post(post, target="downloads")
|
||||
video_filename = next((f for f in os.listdir("downloads") if f.endswith('.mp4')), None)
|
||||
if video_filename:
|
||||
return os.path.join("downloads", video_filename)
|
||||
return None
|
||||
except Exception as e:
|
||||
logger.error(f"Ошибка при скачивании видео: {e}")
|
||||
return None
|
||||
|
||||
# Обработчик команды /start
|
||||
@dp.message_handler(commands=['start'])
|
||||
async def send_welcome(message: types.Message):
|
||||
await message.reply("Привет! Я бот для скачивания видео с Instagram. Отправьте ссылку на видео чтобы начать.")
|
||||
|
||||
# Обработчик получения ссылки на Instagram
|
||||
@dp.message_handler()
|
||||
async def handle_instagram_link(message: types.Message):
|
||||
link = message.text
|
||||
await message.reply("Видео скачивается, пожалуйста подождите...")
|
||||
|
||||
video_file = await download_instagram_video(link)
|
||||
if video_file:
|
||||
with open(video_file, 'rb') as video:
|
||||
await bot.send_video(message.chat.id, video, caption="Вот ваше видео с Instagram")
|
||||
os.remove(video_file)
|
||||
else:
|
||||
await message.reply("Произошла ошибка при скачивании видео. Пожалуйста, попробуйте ещё раз.")
|
||||
|
||||
if __name__ == '__main__':
|
||||
logger.info('Start polling.')
|
||||
executor.start_polling(dp, skip_updates=True)
|
||||
71
downyoutube(OLD).py
Normal file
71
downyoutube(OLD).py
Normal file
@@ -0,0 +1,71 @@
|
||||
#!/usr/bin/python
|
||||
# -*- coding: utf-8 -*-
|
||||
import logging
|
||||
import os
|
||||
from aiogram import Bot, Dispatcher, types
|
||||
from aiogram.utils import executor
|
||||
from pytube import YouTube, request
|
||||
import youtube_dl
|
||||
import yt_dlp as youtube_dl
|
||||
|
||||
# Ваш токен от BotFather
|
||||
API_TOKEN = '564432189:AAEF5uBBZZ3VLUl-njjwzDRlqF4HCA9ceGo'
|
||||
|
||||
# Путь к файлу cookies.txt
|
||||
COOKIES_FILE = 'cookies.txt'
|
||||
|
||||
# Настройка логирования с записью в файл
|
||||
logging.basicConfig(
|
||||
level=logging.INFO,
|
||||
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
|
||||
handlers=[
|
||||
logging.FileHandler('bot_logs.log'),
|
||||
logging.StreamHandler()
|
||||
]
|
||||
)
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
# Инициализация бота и диспетчера
|
||||
bot = Bot(token=API_TOKEN)
|
||||
dp = Dispatcher(bot)
|
||||
|
||||
# Обработчик команды /start
|
||||
@dp.message_handler(commands=['start'])
|
||||
async def send_welcome(message: types.Message):
|
||||
await message.reply("Привет! Я бот для скачивания видео с YouTube. Отправьте команду /download чтобы начать.")
|
||||
|
||||
|
||||
# Обработчик команды /download
|
||||
@dp.message_handler(commands=['download'])
|
||||
async def prompt_for_link(message: types.Message):
|
||||
await message.reply("Пожалуйста, отправьте ссылку на видео или Shorts с YouTube.")
|
||||
|
||||
|
||||
# Обработчик получения ссылки на YouTube
|
||||
@dp.message_handler()
|
||||
async def download_youtube_video(message: types.Message):
|
||||
link = message.text
|
||||
|
||||
try:
|
||||
ydl_opts = {
|
||||
'outtmpl': '%(title)s.%(ext)s',
|
||||
'cookies': COOKIES_FILE,
|
||||
}
|
||||
|
||||
with youtube_dl.YoutubeDL(ydl_opts) as ydl:
|
||||
info_dict = ydl.extract_info(link, download=True)
|
||||
video_file = ydl.prepare_filename(info_dict)
|
||||
|
||||
await message.reply("Видео скачивается, пожалуйста подождите...")
|
||||
|
||||
with open(video_file, 'rb') as video:
|
||||
await bot.send_video(message.chat.id, video, caption="Вот ваше видео с YouTube")
|
||||
|
||||
os.remove(video_file)
|
||||
except Exception as e:
|
||||
logger.error(f"Ошибка при скачивании видео: {e}")
|
||||
await message.reply("Произошла ошибка при скачивании видео. Пожалуйста, попробуйте ещё раз.")
|
||||
|
||||
if __name__ == '__main__':
|
||||
logger.info('Start polling.')
|
||||
executor.start_polling(dp, skip_updates=True)
|
||||
69
downyoutube.py
Normal file
69
downyoutube.py
Normal file
@@ -0,0 +1,69 @@
|
||||
#!/usr/bin/python
|
||||
# -*- coding: utf-8 -*-
|
||||
import logging
|
||||
import os
|
||||
from aiogram import Bot, Dispatcher, types
|
||||
from aiogram.utils import executor
|
||||
import yt_dlp as youtube_dl
|
||||
|
||||
# Ваш токен от BotFather
|
||||
API_TOKEN = '564432189:AAEF5uBBZZ3VLUl-njjwzDRlqF4HCA9ceGo'
|
||||
|
||||
# Путь к файлу cookies.txt
|
||||
COOKIES_FILE = 'cookies.txt'
|
||||
|
||||
# Настройка логирования с записью в файл
|
||||
logging.basicConfig(
|
||||
level=logging.INFO,
|
||||
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
|
||||
handlers=[
|
||||
logging.FileHandler('bot_down_tube_logs.log'),
|
||||
logging.StreamHandler()
|
||||
]
|
||||
)
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
# Инициализация бота и диспетчера
|
||||
bot = Bot(token=API_TOKEN)
|
||||
dp = Dispatcher(bot)
|
||||
|
||||
# Обработчик команды /start
|
||||
@dp.message_handler(commands=['start'])
|
||||
async def send_welcome(message: types.Message):
|
||||
await message.reply("Привет! Я бот для скачивания видео с YouTube. Отправьте команду /download чтобы начать.")
|
||||
|
||||
# Обработчик команды /download
|
||||
@dp.message_handler(commands=['download'])
|
||||
async def prompt_for_link(message: types.Message):
|
||||
await message.reply("Пожалуйста, отправьте ссылку на видео или Shorts с YouTube.")
|
||||
|
||||
# Обработчик получения ссылки на YouTube
|
||||
@dp.message_handler()
|
||||
async def download_youtube_video(message: types.Message):
|
||||
link = message.text
|
||||
|
||||
try:
|
||||
ydl_opts = {
|
||||
'outtmpl': '%(title)s.%(ext)s',
|
||||
'format': 'bestvideo+bestaudio/best',
|
||||
'merge_output_format': 'mp4',
|
||||
}
|
||||
|
||||
with youtube_dl.YoutubeDL(ydl_opts) as ydl:
|
||||
info_dict = ydl.extract_info(link, download=True)
|
||||
video_file = ydl.prepare_filename(info_dict)
|
||||
|
||||
await message.reply("Видео скачивается, пожалуйста подождите...")
|
||||
|
||||
with open(video_file, 'rb') as video:
|
||||
caption = info_dict['title'] # Добавляем название видео к подписи
|
||||
await bot.send_video(message.chat.id, video, caption=caption)
|
||||
|
||||
os.remove(video_file)
|
||||
except Exception as e:
|
||||
logger.error(f"Ошибка при скачивании видео: {e}")
|
||||
await message.reply("Произошла ошибка при скачивании видео. Пожалуйста, попробуйте ещё раз.")
|
||||
|
||||
if __name__ == '__main__':
|
||||
logger.info('Start polling.')
|
||||
executor.start_polling(dp, skip_updates=True)
|
||||
48
main.py
Normal file
48
main.py
Normal file
@@ -0,0 +1,48 @@
|
||||
import logging
|
||||
from telegram import Update
|
||||
from telegram.ext import Updater, CommandHandler, MessageHandler, Filters, CallbackContext, dispatcher
|
||||
|
||||
# Включаем логирование
|
||||
logging.basicConfig(
|
||||
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
|
||||
level=logging.INFO
|
||||
)
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
# Ваш токен от BotFather
|
||||
TOKEN = '7279978236:AAEnzp3moKdIUqOZ_rCLuim7tyQwVBJDGOU'
|
||||
|
||||
# Список ID групп, куда будут пересылаться сообщения
|
||||
TARGET_GROUP_IDS = [-1002243409068, -1002164079094_2, -1002150063511_2] # замените на реальные ID ваших групп
|
||||
|
||||
def start(update: Update, context: CallbackContext) -> None:
|
||||
update.message.reply_text('Привет! Я бот, который пересылает сообщения в группы.')
|
||||
|
||||
|
||||
def forward_message(update: Update, context: CallbackContext) -> None:
|
||||
logger.info(f"Получено сообщение в группе {update.message.chat_id}")
|
||||
for group_id in TARGET_GROUP_IDS:
|
||||
try:
|
||||
context.bot.forward_message(chat_id=group_id, from_chat_id=update.message.chat_id, message_id=update.message.message_id)
|
||||
logger.info(f"Сообщение переслано в группу {group_id}")
|
||||
except Exception as e:
|
||||
logger.error(f"Ошибка при пересылке сообщения в группу {group_id}: {e}")
|
||||
|
||||
def main() -> None:
|
||||
# Создание экземпляра Updater и Dispatcher
|
||||
updater = Updater(TOKEN)
|
||||
dispatcher = updater.dispatcher
|
||||
|
||||
# Обработчик команды /start
|
||||
dispatcher.add_handler(CommandHandler("start", start))
|
||||
|
||||
# Обработчик всех сообщений для пересылки
|
||||
dispatcher.add_handler(MessageHandler(Filters.text & ~Filters.command, forward_message))
|
||||
|
||||
# Запуск бота
|
||||
updater.start_polling()
|
||||
updater.idle()
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
37
mainai(ORG).py
Normal file
37
mainai(ORG).py
Normal file
@@ -0,0 +1,37 @@
|
||||
import logging
|
||||
from aiogram import Bot, Dispatcher, types
|
||||
from aiogram.types import ParseMode
|
||||
from aiogram.utils import executor
|
||||
|
||||
# Ваш токен от BotFather
|
||||
API_TOKEN = '7279978236:AAEnzp3moKdIUqOZ_rCLuim7tyQwVBJDGOU'
|
||||
|
||||
# Список ID групп, куда будут пересылаться сообщения
|
||||
TARGET_GROUP_IDS = [-1002164079094, -1002243409068, -1002150063511] # замените на реальные ID ваших групп
|
||||
|
||||
|
||||
# Настройка логирования
|
||||
logging.basicConfig(level=logging.INFO)
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
# Инициализация бота и диспетчера
|
||||
bot = Bot(token=API_TOKEN, parse_mode=ParseMode.HTML)
|
||||
dp = Dispatcher(bot)
|
||||
|
||||
# Обработчик команды /start
|
||||
@dp.message_handler(commands=['start'])
|
||||
async def send_welcome(message: types.Message):
|
||||
await message.reply("Привет! Я бот, который пересылает сообщения в группы.")
|
||||
|
||||
# Обработчик всех типов сообщений для пересылки
|
||||
@dp.message_handler(content_types=types.ContentType.ANY)
|
||||
async def forward_message(message: types.Message):
|
||||
for group_id in TARGET_GROUP_IDS:
|
||||
try:
|
||||
await bot.forward_message(chat_id=group_id, from_chat_id=message.chat.id, message_id=message.message_id)
|
||||
logger.info(f"Сообщение переслано в группу {group_id}")
|
||||
except Exception as e:
|
||||
logger.error(f"Ошибка при пересылке сообщения в группу {group_id}: {e}")
|
||||
|
||||
if __name__ == '__main__':
|
||||
executor.start_polling(dp, skip_updates=True)
|
||||
73
mainai.py
Normal file
73
mainai.py
Normal file
@@ -0,0 +1,73 @@
|
||||
import logging
|
||||
from aiogram import Bot, Dispatcher, types
|
||||
from aiogram.types import ParseMode
|
||||
from aiogram.utils import executor
|
||||
|
||||
# Ваш токен от BotFather
|
||||
API_TOKEN = '7279978236:AAEnzp3moKdIUqOZ_rCLuim7tyQwVBJDGOU'
|
||||
# ID группы, из которой будут пересылаться сообщения
|
||||
#SOURCE_GROUP_ID = -1002243409068 # замените на реальный ID вашей основной группы
|
||||
# Список ID групп, куда будут пересылаться сообщения
|
||||
TARGET_GROUP_IDS = [-1002164079094, -1002243409068, -1002150063511, -1002191147447] # замените на реальные ID ваших групп
|
||||
|
||||
# Список ID разрешённых пользователей
|
||||
ALLOWED_USER_IDS = [523763687, 1000964643, 794413216, 954527694] # замените на реальные ID разрешённых пользователей
|
||||
|
||||
# Настройка логирования с записью в файл
|
||||
logging.basicConfig(
|
||||
level=logging.INFO,
|
||||
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
|
||||
handlers=[
|
||||
logging.FileHandler('bot_logs.log'),
|
||||
logging.StreamHandler()
|
||||
]
|
||||
)
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
# Инициализация бота и диспетчера
|
||||
bot = Bot(token=API_TOKEN, parse_mode=ParseMode.HTML)
|
||||
dp = Dispatcher(bot)
|
||||
|
||||
# Обработчик команды /start
|
||||
@dp.message_handler(commands=['start'])
|
||||
async def send_welcome(message: types.Message):
|
||||
await message.reply("Привет! Я бот, который пересылает сообщения в группы.")
|
||||
|
||||
# Обработчик всех типов сообщений для пересылки из личных сообщений боту
|
||||
@dp.message_handler(content_types=types.ContentType.ANY)
|
||||
async def forward_message(message: types.Message):
|
||||
if message.chat.type == 'private': # Проверка, что сообщение пришло в личный чат
|
||||
if message.from_user.id in ALLOWED_USER_IDS: # Проверка, что пользователь разрешён
|
||||
for group_id in TARGET_GROUP_IDS:
|
||||
try:
|
||||
if message.content_type == types.ContentType.TEXT:
|
||||
await bot.send_message(chat_id=group_id, text=message.text, disable_notification=True)
|
||||
logger.info(f"Текстовое сообщение отправлено в группу {group_id}")
|
||||
elif message.content_type == types.ContentType.PHOTO:
|
||||
await bot.send_photo(chat_id=group_id, photo=message.photo[-1].file_id, caption=message.caption, disable_notification=True)
|
||||
logger.info(f"Фото отправлено в группу {group_id}")
|
||||
elif message.content_type == types.ContentType.DOCUMENT:
|
||||
await bot.send_document(chat_id=group_id, document=message.document.file_id, caption=message.caption, disable_notification=True)
|
||||
logger.info(f"Документ отправлен в группу {group_id}")
|
||||
elif message.content_type == types.ContentType.VIDEO:
|
||||
await bot.send_video(chat_id=group_id, video=message.video.file_id, caption=message.caption, disable_notification=True)
|
||||
logger.info(f"Видео отправлено в группу {group_id}")
|
||||
elif message.content_type == types.ContentType.AUDIO:
|
||||
await bot.send_audio(chat_id=group_id, audio=message.audio.file_id, caption=message.caption, disable_notification=True)
|
||||
logger.info(f"Аудио отправлено в группу {group_id}")
|
||||
elif message.content_type == types.ContentType.VOICE:
|
||||
await bot.send_voice(chat_id=group_id, voice=message.voice.file_id, caption=message.caption, disable_notification=True)
|
||||
logger.info(f"Голосовое сообщение отправлено в группу {group_id}")
|
||||
elif message.content_type == types.ContentType.VIDEO_NOTE:
|
||||
await bot.send_video_note(chat_id=group_id, video_note=message.video_note.file_id, disable_notification=True)
|
||||
logger.info(f"Видеозаметка отправлена в группу {group_id}")
|
||||
else:
|
||||
logger.warning(f"Тип сообщения {message.content_type} не поддерживается")
|
||||
except Exception as e:
|
||||
logger.error(f"Ошибка при отправке сообщения в группу {group_id}: {e}")
|
||||
else:
|
||||
logger.warning(f"Пользователь {message.from_user.id} не имеет доступа к боту")
|
||||
await message.reply("У вас нет доступа к этому боту.")
|
||||
|
||||
if __name__ == '__main__':
|
||||
executor.start_polling(dp, skip_updates=True)
|
||||
67
mainai_01.py
Normal file
67
mainai_01.py
Normal file
@@ -0,0 +1,67 @@
|
||||
import logging
|
||||
from aiogram import Bot, Dispatcher, types
|
||||
from aiogram.types import ParseMode
|
||||
from aiogram.utils import executor
|
||||
from pytube import YouTube
|
||||
|
||||
# Ваш токен от BotFather
|
||||
API_TOKEN = '7279978236:AAEnzp3moKdIUqOZ_rCLuim7tyQwVBJDGOU'
|
||||
# ID группы, из которой будут пересылаться сообщения
|
||||
#SOURCE_GROUP_ID = -1002243409068 # замените на реальный ID вашей основной группы
|
||||
# Список ID групп, куда будут пересылаться сообщения
|
||||
TARGET_GROUP_IDS = [-1002164079094, -1002243409068, -1002150063511] # замените на реальные ID ваших групп
|
||||
|
||||
# Список ID разрешённых пользователей
|
||||
ALLOWED_USER_IDS = [523763687, 1000964643, 794413216] # замените на реальные ID разрешённых пользователей
|
||||
|
||||
# Настройка логирования
|
||||
logging.basicConfig(level=logging.INFO)
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
# Инициализация бота и диспетчера
|
||||
bot = Bot(token=API_TOKEN, parse_mode=ParseMode.HTML)
|
||||
dp = Dispatcher(bot)
|
||||
|
||||
# Обработчик команды /start
|
||||
@dp.message_handler(commands=['start'])
|
||||
async def send_welcome(message: types.Message):
|
||||
await message.reply("Привет! Я бот, который пересылает сообщения в группы.")
|
||||
|
||||
# Обработчик всех типов сообщений для пересылки из личных сообщений боту
|
||||
@dp.message_handler(content_types=types.ContentType.ANY)
|
||||
async def forward_message(message: types.Message):
|
||||
if message.chat.type == 'private': # Проверка, что сообщение пришло в личный чат
|
||||
if message.from_user.id in ALLOWED_USER_IDS: # Проверка, что пользователь разрешён
|
||||
for group_id in TARGET_GROUP_IDS:
|
||||
try:
|
||||
if message.content_type == types.ContentType.TEXT:
|
||||
await bot.send_message(chat_id=group_id, text=message.text, disable_notification=True)
|
||||
logger.info(f"Текстовое сообщение отправлено в группу {group_id}")
|
||||
elif message.content_type == types.ContentType.PHOTO:
|
||||
await bot.send_photo(chat_id=group_id, photo=message.photo[-1].file_id, caption=message.caption, disable_notification=True)
|
||||
logger.info(f"Фото отправлено в группу {group_id}")
|
||||
elif message.content_type == types.ContentType.DOCUMENT:
|
||||
await bot.send_document(chat_id=group_id, document=message.document.file_id, caption=message.caption, disable_notification=True)
|
||||
logger.info(f"Документ отправлен в группу {group_id}")
|
||||
elif message.content_type == types.ContentType.VIDEO:
|
||||
await bot.send_video(chat_id=group_id, video=message.video.file_id, caption=message.caption, disable_notification=True)
|
||||
logger.info(f"Видео отправлено в группу {group_id}")
|
||||
elif message.content_type == types.ContentType.AUDIO:
|
||||
await bot.send_audio(chat_id=group_id, audio=message.audio.file_id, caption=message.caption, disable_notification=True)
|
||||
logger.info(f"Аудио отправлено в группу {group_id}")
|
||||
elif message.content_type == types.ContentType.VOICE:
|
||||
await bot.send_voice(chat_id=group_id, voice=message.voice.file_id, caption=message.caption, disable_notification=True)
|
||||
logger.info(f"Голосовое сообщение отправлено в группу {group_id}")
|
||||
elif message.content_type == types.ContentType.VIDEO_NOTE:
|
||||
await bot.send_video_note(chat_id=group_id, video_note=message.video_note.file_id, disable_notification=True)
|
||||
logger.info(f"Видеозаметка отправлена в группу {group_id}")
|
||||
else:
|
||||
logger.warning(f"Тип сообщения {message.content_type} не поддерживается")
|
||||
except Exception as e:
|
||||
logger.error(f"Ошибка при отправке сообщения в группу {group_id}: {e}")
|
||||
else:
|
||||
logger.warning(f"Пользователь {message.from_user.id} не имеет доступа к боту")
|
||||
await message.reply("У вас нет доступа к этому боту.")
|
||||
|
||||
if __name__ == '__main__':
|
||||
executor.start_polling(dp, skip_updates=True)
|
||||
BIN
session-bdg9840
Normal file
BIN
session-bdg9840
Normal file
Binary file not shown.
14
testproxy.py
Normal file
14
testproxy.py
Normal file
@@ -0,0 +1,14 @@
|
||||
import aiohttp
|
||||
import asyncio
|
||||
|
||||
async def fetch(session, url):
|
||||
proxy_auth = aiohttp.BasicAuth('bots_man', 'Ax123456')
|
||||
async with session.get(url, proxy='http://185.250.148.233:8899', proxy_auth=proxy_auth) as response:
|
||||
return await response.text()
|
||||
|
||||
async def main():
|
||||
async with aiohttp.ClientSession() as session:
|
||||
html = await fetch(session, 'http://example.com')
|
||||
print(html)
|
||||
|
||||
asyncio.run(main())
|
||||
95
unitib.py
Normal file
95
unitib.py
Normal file
@@ -0,0 +1,95 @@
|
||||
#!/usr/bin/python
|
||||
# -*- coding: utf-8 -*-
|
||||
import logging
|
||||
import os
|
||||
from aiogram import Bot, Dispatcher, types
|
||||
from aiogram.types import InlineKeyboardMarkup, InlineKeyboardButton
|
||||
from aiogram.utils import executor
|
||||
|
||||
# Ваш токен от BotFather
|
||||
API_TOKEN = '7437033939:AAHmX2KvRecp0Y2uKFlldWGtoZXgNvRKRUk'
|
||||
|
||||
# Настройка логирования с записью в файл
|
||||
logging.basicConfig(
|
||||
level=logging.INFO,
|
||||
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
|
||||
handlers=[
|
||||
logging.FileHandler('bot_uniti_logs.log'),
|
||||
logging.StreamHandler()
|
||||
]
|
||||
)
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
# Инициализация бота и диспетчера
|
||||
bot = Bot(token=API_TOKEN)
|
||||
dp = Dispatcher(bot)
|
||||
|
||||
# Переменная для хранения состояния пользователя
|
||||
user_states = {}
|
||||
|
||||
# Функция для создания клавиатуры с inline-кнопками
|
||||
def get_inline_keyboard():
|
||||
keyboard = InlineKeyboardMarkup()
|
||||
button1 = InlineKeyboardButton("Скачать с YouTube", callback_data="action_2")
|
||||
button2 = InlineKeyboardButton("Отправить в группы", callback_data="action_1")
|
||||
button3 = InlineKeyboardButton("Скачать с Instagram", callback_data="action_3")
|
||||
keyboard.add(button1, button3)
|
||||
keyboard.add(button2)
|
||||
return keyboard
|
||||
|
||||
# Функция для создания клавиатуры с кнопкой отмены
|
||||
def get_cancel_keyboard():
|
||||
keyboard = InlineKeyboardMarkup()
|
||||
cancel_button = InlineKeyboardButton("Отмена", callback_data="cancel")
|
||||
keyboard.add(cancel_button)
|
||||
return keyboard
|
||||
|
||||
# Функция для создания клавиатуры с кнопкой "Назад"
|
||||
def get_back_keyboard():
|
||||
keyboard = InlineKeyboardMarkup()
|
||||
back_button = InlineKeyboardButton("Назад", callback_data="back")
|
||||
keyboard.add(back_button)
|
||||
return keyboard
|
||||
|
||||
# Обработчик команды /start
|
||||
@dp.message_handler(commands=['start'])
|
||||
async def send_welcome(message: types.Message):
|
||||
await message.reply("Привет! Я бот с inline-кнопками. Выберите действие:", reply_markup=get_inline_keyboard())
|
||||
|
||||
# Обработчик нажатий на inline-кнопки
|
||||
@dp.callback_query_handler(lambda c: c.data and c.data.startswith('action_'))
|
||||
async def process_callback_button(callback_query: types.CallbackQuery):
|
||||
action = callback_query.data
|
||||
if action == 'action_1':
|
||||
await bot.answer_callback_query(callback_query.id, text='Вы выбрали действие 1!')
|
||||
# Отправить ссылку на другого бота
|
||||
keyboard = InlineKeyboardMarkup()
|
||||
keyboard.add(InlineKeyboardButton("Перейти в бот перессылки", url="https://t.me/TGSendMessageFiPiBot"))
|
||||
await bot.send_message(callback_query.from_user.id, "Нажмите на кнопку, чтобы перейти в другой бот.",
|
||||
reply_markup=keyboard)
|
||||
elif action == 'action_2':
|
||||
await bot.answer_callback_query(callback_query.id, text='Вы выбрали действие 2!')
|
||||
# Отправить ссылку на другого бота
|
||||
keyboard = InlineKeyboardMarkup()
|
||||
keyboard.add(InlineKeyboardButton("Перейти в бота скачиваний с YouTube", url="https://t.me/haligali_bot"))
|
||||
await bot.send_message(callback_query.from_user.id, "Нажмите на кнопку, чтобы перейти в другой бот.",
|
||||
reply_markup=keyboard)
|
||||
elif action == 'action_3':
|
||||
await bot.answer_callback_query(callback_query.id, text='Вы выбрали действие 3!')
|
||||
# Отправить ссылку на другого бота
|
||||
keyboard = InlineKeyboardMarkup()
|
||||
keyboard.add(InlineKeyboardButton("Перейти в бота скачиваний с Instagram", url="https://t.me/irktestass_bot"))
|
||||
await bot.send_message(callback_query.from_user.id, "Нажмите на кнопку, чтобы перейти в другой бот.", reply_markup=keyboard)
|
||||
|
||||
await bot.edit_message_reply_markup(callback_query.from_user.id, callback_query.message.message_id, reply_markup=None)
|
||||
|
||||
# Обработчик нажатия на кнопку "Отмена" или "Назад"
|
||||
@dp.callback_query_handler(lambda c: c.data and (c.data == 'cancel' or c.data == 'back'))
|
||||
async def process_cancel_or_back_button(callback_query: types.CallbackQuery):
|
||||
user_states[callback_query.from_user.id] = None
|
||||
await bot.answer_callback_query(callback_query.id, text='Действие отменено.')
|
||||
await bot.send_message(callback_query.from_user.id, "Действие отменено.", reply_markup=get_inline_keyboard())
|
||||
|
||||
if __name__ == '__main__':
|
||||
logger.info('Start polling.')
|
||||
executor.start_polling(dp, skip_updates=True)
|
||||
Reference in New Issue
Block a user