Coverage for /home/runner/work/gpu-prices-bot/gpu-prices-bot/src/bot/bot.py: 0%

15 statements  

« prev     ^ index     » next       coverage.py v7.2.1, created at 2023-03-31 20:32 +0000

1from telegram.ext import ( 

2 Updater, 

3 CommandHandler, 

4 CallbackQueryHandler, 

5 ConversationHandler, 

6 MessageHandler, Filters, 

7) 

8 

9from src.bot.autorization import token 

10from src.bot.commands import * 

11from src.bot.constants import * 

12 

13 

14def main() -> None: 

15 """Start the bot.""" 

16 # Создание Updater и связывание с токеном бота 

17 updater = Updater(token) 

18 

19 # Получение dispatcher и регистрация handlers 

20 dispatcher = updater.dispatcher 

21 

22 for_gpu_handler = ConversationHandler( 

23 entry_points=[CallbackQueryHandler(for_gpu, pattern='^' + str(FOR_GPU) + '$'),], 

24 states={ 

25 ON_SEARCH: [ 

26 CallbackQueryHandler(gpu_info, pattern=Filters.text), 

27 ], 

28 GRAPH_SUBMENU_ON_GPU: [ 

29 CallbackQueryHandler(graph_for_gpu_func, pattern='^' + str(SHOW_30_DAYS_GPU) + '$'), 

30 CallbackQueryHandler(graph_for_gpu_func, pattern='^' + str(SHOW_60_DAYS_GPU) + '$'), 

31 CallbackQueryHandler(graph_for_gpu_func, pattern='^' + str(SHOW_90_DAYS_GPU) + '$'), 

32 ], 

33 ON_GPU_QUESTION: [ 

34 ], 

35 GPU_SUBMENU: [ 

36 MessageHandler(Filters.text, gpu_search_func), 

37 ], 

38 }, 

39 fallbacks=[ 

40 CallbackQueryHandler(end_on_gpu, pattern='^' + str(BACK_TO_MENU) + '$'), 

41 CommandHandler('start', start_fallback), 

42 ], 

43 map_to_parent={ 

44 BACK_TO_MENU: MENU 

45 }, 

46 ) 

47 

48 # Добавление conversation handler с состояниями разговора 

49 conv_handler = ConversationHandler( 

50 entry_points=[CommandHandler('start', start)], 

51 states={ 

52 MENU: [ 

53 CallbackQueryHandler(stats_popularity_func, pattern='^' + str(STATS) + '$'), 

54 CallbackQueryHandler(stats_popularity_func, pattern='^' + str(POPULARITY) + '$'), 

55 ], 

56 STATS_SUBMENU: [ 

57 CallbackQueryHandler(for_shop_vendor_stats, pattern='^' + str(FOR_SHOP) + '$'), 

58 CallbackQueryHandler(for_shop_vendor_stats, pattern='^' + str(FOR_VENDOR) + '$'), 

59 for_gpu_handler, 

60 ], 

61 POPULARITY_SUBMENU: [ 

62 CallbackQueryHandler(for_shop_vendor_popularity, pattern='^'+ str(POPULARITY_FOR_SHOP) + '$'), 

63 CallbackQueryHandler(for_shop_vendor_popularity, pattern='^' + str(POPULARITY_FOR_VENDOR) + '$'), 

64 ], 

65 POPULARITY_SHOPS_SUBMENU: [ 

66 CallbackQueryHandler(popularity_shops_graph, pattern='^' + str(DNS_SHOP) + '$'), 

67 CallbackQueryHandler(popularity_shops_graph, pattern='^' + str(MVIDEO_SHOP) + '$'), 

68 CallbackQueryHandler(popularity_shops_graph, pattern='^' + str(CITILINK_SHOP) + '$'), 

69 ], 

70 POPULARITY_SHOPS_GRAPH_SUBMENU: [ 

71 CallbackQueryHandler(start_over, pattern='^' + str(BACK_TO_MENU) + '$') 

72 ], 

73 POPULARITY_VENDORS_SUBMENU: [ 

74 CallbackQueryHandler(popularity_vendors_graph, pattern='^' + str(VENDOR_AFOX) + '$'), 

75 CallbackQueryHandler(popularity_vendors_graph, pattern='^' + str(VENDOR_ASROCK) + '$'), 

76 CallbackQueryHandler(popularity_vendors_graph, pattern='^' + str(VENDOR_ASUS) + '$'), 

77 CallbackQueryHandler(popularity_vendors_graph, pattern='^' + str(VENDOR_BIOSTAR) + '$'), 

78 CallbackQueryHandler(popularity_vendors_graph, pattern='^' + str(VENDOR_COLORFUL) + '$'), 

79 CallbackQueryHandler(popularity_vendors_graph, pattern='^' + str(VENDOR_DELL) + '$'), 

80 CallbackQueryHandler(popularity_vendors_graph, pattern='^' + str(VENDOR_EVGA) + '$'), 

81 CallbackQueryHandler(popularity_vendors_graph, pattern='^' + str(VENDOR_GIGABYTE) + '$'), 

82 CallbackQueryHandler(popularity_vendors_graph, pattern='^' + str(VENDOR_INNO3D) + '$'), 

83 CallbackQueryHandler(popularity_vendors_graph, pattern='^' + str(VENDOR_KFA2) + '$'), 

84 CallbackQueryHandler(popularity_vendors_graph, pattern='^' + str(VENDOR_MATROX) + '$'), 

85 CallbackQueryHandler(popularity_vendors_graph, pattern='^' + str(VENDOR_MSI) + '$'), 

86 CallbackQueryHandler(popularity_vendors_graph, pattern='^' + str(VENDOR_NVIDIA) + '$'), 

87 CallbackQueryHandler(popularity_vendors_graph, pattern='^' + str(VENDOR_PALIT) + '$'), 

88 CallbackQueryHandler(popularity_vendors_graph, pattern='^' + str(VENDOR_PNY) + '$'), 

89 CallbackQueryHandler(popularity_vendors_graph, pattern='^' + str(VENDOR_POWERCOLOR) + '$'), 

90 CallbackQueryHandler(popularity_vendors_graph, pattern='^' + str(VENDOR_SAPPHIRE) + '$'), 

91 CallbackQueryHandler(popularity_vendors_graph, pattern='^' + str(VENDOR_SINOTEX) + '$'), 

92 CallbackQueryHandler(popularity_vendors_graph, pattern='^' + str(VENDOR_XFX) + '$'), 

93 CallbackQueryHandler(popularity_vendors_graph, pattern='^' + str(VENDOR_ZOTAC) + '$'), 

94 ], 

95 POPULARITY_VENDORS_GRAPH_SUBMENU: [ 

96 CallbackQueryHandler(start_over, pattern='^' + str(BACK_TO_MENU) + '$') 

97 ], 

98 SHOPS_SUBMENU: [ 

99 CallbackQueryHandler(arch_func, pattern='^' + str(DNS_SHOP) + '$'), 

100 CallbackQueryHandler(arch_func, pattern='^' + str(MVIDEO_SHOP) + '$'), 

101 CallbackQueryHandler(arch_func, pattern='^' + str(CITILINK_SHOP) + '$'), 

102 ], 

103 VENDORS_SUBMENU: [ 

104 CallbackQueryHandler(arch_func, pattern='^' + str(VENDOR_AFOX) + '$'), 

105 CallbackQueryHandler(arch_func, pattern='^' + str(VENDOR_ASROCK) + '$'), 

106 CallbackQueryHandler(arch_func, pattern='^' + str(VENDOR_ASUS) + '$'), 

107 CallbackQueryHandler(arch_func, pattern='^' + str(VENDOR_BIOSTAR) + '$'), 

108 CallbackQueryHandler(arch_func, pattern='^' + str(VENDOR_COLORFUL) + '$'), 

109 CallbackQueryHandler(arch_func, pattern='^' + str(VENDOR_DELL) + '$'), 

110 CallbackQueryHandler(arch_func, pattern='^' + str(VENDOR_EVGA) + '$'), 

111 CallbackQueryHandler(arch_func, pattern='^' + str(VENDOR_GIGABYTE) + '$'), 

112 CallbackQueryHandler(arch_func, pattern='^' + str(VENDOR_INNO3D) + '$'), 

113 CallbackQueryHandler(arch_func, pattern='^' + str(VENDOR_KFA2) + '$'), 

114 CallbackQueryHandler(arch_func, pattern='^' + str(VENDOR_MATROX) + '$'), 

115 CallbackQueryHandler(arch_func, pattern='^' + str(VENDOR_MSI) + '$'), 

116 CallbackQueryHandler(arch_func, pattern='^' + str(VENDOR_NVIDIA) + '$'), 

117 CallbackQueryHandler(arch_func, pattern='^' + str(VENDOR_PALIT) + '$'), 

118 CallbackQueryHandler(arch_func, pattern='^' + str(VENDOR_PNY) + '$'), 

119 CallbackQueryHandler(arch_func, pattern='^' + str(VENDOR_POWERCOLOR) + '$'), 

120 CallbackQueryHandler(arch_func, pattern='^' + str(VENDOR_SAPPHIRE) + '$'), 

121 CallbackQueryHandler(arch_func, pattern='^' + str(VENDOR_SINOTEX) + '$'), 

122 CallbackQueryHandler(arch_func, pattern='^' + str(VENDOR_XFX) + '$'), 

123 CallbackQueryHandler(arch_func, pattern='^' + str(VENDOR_ZOTAC) + '$'), 

124 ], 

125 ARCHITECTURE_SUBMENU: [ 

126 CallbackQueryHandler(nvidia_amd_other_func, pattern='^' + str(NVIDIA) + '$'), 

127 CallbackQueryHandler(nvidia_amd_other_func, pattern='^' + str(AMD) + '$'), 

128 CallbackQueryHandler(nvidia_amd_other_func, pattern='^' + str(OTHER_ARCH) + '$'), 

129 ], 

130 OTHER_ARCH_SUBMENU: [ 

131 CallbackQueryHandler(nvidia_amd_other_func, pattern='^' + str(INTEL) + '$'), 

132 CallbackQueryHandler(nvidia_amd_other_func, pattern='^' + str(MATROX) + '$'), 

133 ], 

134 NVIDIA_SERIES_SUBMENU: [ 

135 CallbackQueryHandler(nvidia_series_func, pattern='^' + str(NVIDIA_10XX_SERIES) + '$'), 

136 CallbackQueryHandler(nvidia_series_func, pattern='^' + str(NVIDIA_16XX_SERIES) + '$'), 

137 CallbackQueryHandler(nvidia_series_func, pattern='^' + str(NVIDIA_20XX_SERIES) + '$'), 

138 CallbackQueryHandler(nvidia_series_func, pattern='^' + str(NVIDIA_30XX_SERIES) + '$'), 

139 CallbackQueryHandler(nvidia_series_func, pattern='^' + str(NVIDIA_40XX_SERIES) + '$'), 

140 CallbackQueryHandler(nvidia_series_func, pattern='^' + str(NVIDIA_OTHER_SERIES) + '$'), 

141 ], 

142 NVIDIA_OTHER_SUBMENU: [ 

143 CallbackQueryHandler(nvidia_series_func, pattern='^' + str(NVIDIA_QUADRO_SERIES) + '$'), 

144 CallbackQueryHandler(nvidia_series_func, pattern='^' + str(NVIDIA_TESLA_SERIES) + '$'), 

145 CallbackQueryHandler(graph_func, pattern='^' + str(NVIDIA_GT_710_SERIES) + '$'), 

146 CallbackQueryHandler(graph_func, pattern='^' + str(NVIDIA_GT_730_SERIES) + '$'), 

147 CallbackQueryHandler(graph_func, pattern='^' + str(NVIDIA_210_SERIES) + '$'), 

148 ], 

149 NVIDIA_QUADRO_SERIES_SUBMENU: [ 

150 CallbackQueryHandler(graph_func, pattern='^' + str(NVIDIA_QUADRO_P2000_SERIES) + '$'), 

151 CallbackQueryHandler(graph_func, pattern='^' + str(NVIDIA_QUADRO_T400_SERIES) + '$'), 

152 CallbackQueryHandler(graph_func, pattern='^' + str(NVIDIA_QUADRO_RTX_6000_SERIES) + '$'), 

153 CallbackQueryHandler(nvidia_series_func, pattern='^' + str(NVIDIA_QUADRO_RTX_AXXXX_SERIES) + '$'), 

154 ], 

155 NVIDIA_QUADRO_RTX_AXXXX_SERIES_SUBMENU: [ 

156 CallbackQueryHandler(graph_func, pattern='^' + str(NVIDIA_QUADRO_RTX_A2000_SERIES) + '$'), 

157 CallbackQueryHandler(graph_func, pattern='^' + str(NVIDIA_QUADRO_RTX_A4500_SERIES) + '$'), 

158 CallbackQueryHandler(graph_func, pattern='^' + str(NVIDIA_QUADRO_RTX_A5000_SERIES) + '$'), 

159 ], 

160 NVIDIA_TESLA_SERIES_SUBMENU: [ 

161 CallbackQueryHandler(graph_func, pattern='^' + str(NVIDIA_TESLA_A10_SERIES) + '$'), 

162 CallbackQueryHandler(graph_func, pattern='^' + str(NVIDIA_TESLA_A2_SERIES) + '$'), 

163 CallbackQueryHandler(graph_func, pattern='^' + str(NVIDIA_TESLA_T4_SERIES) + '$'), 

164 ], 

165 NVIDIA_10XX_SERIES_SUBMENU: [ 

166 CallbackQueryHandler(graph_func, pattern='^' + str(NVIDIA_1080_TI_SERIES) + '$'), 

167 CallbackQueryHandler(graph_func, pattern='^' + str(NVIDIA_1050_TI_SERIES) + '$'), 

168 CallbackQueryHandler(graph_func, pattern='^' + str(NVIDIA_1030_SERIES) + '$'), 

169 ], 

170 NVIDIA_16XX_SERIES_SUBMENU: [ 

171 CallbackQueryHandler(nvidia_series_func, pattern='^' + str(NVIDIA_1660X_SERIES) + '$'), 

172 CallbackQueryHandler(nvidia_series_func, pattern='^' + str(NVIDIA_1650X_SERIES) + '$'), 

173 CallbackQueryHandler(graph_func, pattern='^' + str(NVIDIA_1630_SERIES) + '$'), 

174 ], 

175 NVIDIA_1650X_SERIES_SUBMENU: [ 

176 CallbackQueryHandler(graph_func, pattern='^' + str(NVIDIA_1650_SERIES) + '$'), 

177 CallbackQueryHandler(graph_func, pattern='^' + str(NVIDIA_1650_SUPER_SERIES) + '$'), 

178 ], 

179 NVIDIA_1660X_SERIES_SUBMENU: [ 

180 CallbackQueryHandler(graph_func, pattern='^' + str(NVIDIA_1660_SERIES) + '$'), 

181 CallbackQueryHandler(graph_func, pattern='^' + str(NVIDIA_1660_TI_SERIES) + '$'), 

182 CallbackQueryHandler(graph_func, pattern='^' + str(NVIDIA_1660_SUPER_SERIES) + '$'), 

183 ], 

184 NVIDIA_20XX_SERIES_SUBMENU: [ 

185 CallbackQueryHandler(nvidia_series_func, pattern='^' + str(NVIDIA_2060X_SERIES) + '$'), 

186 CallbackQueryHandler(nvidia_series_func, pattern='^' + str(NVIDIA_2080X_SERIES) + '$'), 

187 ], 

188 NVIDIA_2060X_SERIES_SUBMENU: [ 

189 CallbackQueryHandler(graph_func, pattern='^' + str(NVIDIA_2060_SERIES) + '$'), 

190 CallbackQueryHandler(graph_func, pattern='^' + str(NVIDIA_2060_SUPER_SERIES) + '$'), 

191 ], 

192 NVIDIA_2080X_SERIES_SUBMENU: [ 

193 CallbackQueryHandler(graph_func, pattern='^' + str(NVIDIA_2080_TI_SERIES) + '$'), 

194 CallbackQueryHandler(graph_func, pattern='^' + str(NVIDIA_2080_SUPER_SERIES) + '$'), 

195 ], 

196 NVIDIA_30XX_SERIES_SUBMENU: [ 

197 CallbackQueryHandler(graph_func, pattern='^' + str(NVIDIA_3050_SERIES) + '$'), 

198 CallbackQueryHandler(nvidia_series_func, pattern='^' + str(NVIDIA_3060X_SERIES) + '$'), 

199 CallbackQueryHandler(nvidia_series_func, pattern='^' + str(NVIDIA_3070X_SERIES) + '$'), 

200 CallbackQueryHandler(nvidia_series_func, pattern='^' + str(NVIDIA_3080X_SERIES) + '$'), 

201 CallbackQueryHandler(nvidia_series_func, pattern='^' + str(NVIDIA_3090X_SERIES) + '$'), 

202 ], 

203 NVIDIA_3060X_SERIES_SUBMENU: [ 

204 CallbackQueryHandler(graph_func, pattern='^' + str(NVIDIA_3060_SERIES) + '$'), 

205 CallbackQueryHandler(graph_func, pattern='^' + str(NVIDIA_3060_TI_SERIES) + '$'), 

206 ], 

207 NVIDIA_3070X_SERIES_SUBMENU: [ 

208 CallbackQueryHandler(graph_func, pattern='^' + str(NVIDIA_3070_SERIES) + '$'), 

209 CallbackQueryHandler(graph_func, pattern='^' + str(NVIDIA_3070_TI_SERIES) + '$'), 

210 ], 

211 NVIDIA_3080X_SERIES_SUBMENU: [ 

212 CallbackQueryHandler(graph_func, pattern='^' + str(NVIDIA_3080_SERIES) + '$'), 

213 CallbackQueryHandler(graph_func, pattern='^' + str(NVIDIA_3080_TI_SERIES) + '$'), 

214 ], 

215 NVIDIA_3090X_SERIES_SUBMENU: [ 

216 CallbackQueryHandler(graph_func, pattern='^' + str(NVIDIA_3090_SERIES) + '$'), 

217 CallbackQueryHandler(graph_func, pattern='^' + str(NVIDIA_3090_TI_SERIES) + '$'), 

218 ], 

219 NVIDIA_40XX_SERIES_SUBMENU: [ 

220 CallbackQueryHandler(graph_func, pattern='^' + str(NVIDIA_4080_SERIES) + '$'), 

221 CallbackQueryHandler(graph_func, pattern='^' + str(NVIDIA_4090_SERIES) + '$'), 

222 ], 

223 AMD_SERIES_SUBMENU: [ 

224 CallbackQueryHandler(amd_series_func, pattern='^' + str(AMD_RX5XX_SERIES) + '$'), 

225 CallbackQueryHandler(amd_series_func, pattern='^' + str(AMD_RX5XXX_SERIES) + '$'), 

226 CallbackQueryHandler(amd_series_func, pattern='^' + str(AMD_RX6XXX_SERIES) + '$'), 

227 CallbackQueryHandler(amd_series_func, pattern='^' + str(AMD_OTHER_SERIES) + '$'), 

228 ], 

229 AMD_OTHER_SUBMENU: [ 

230 CallbackQueryHandler(graph_func, pattern='^' + str(AMD_R7_240_SERIES) + '$'), 

231 CallbackQueryHandler(graph_func, pattern='^' + str(AMD_R9_370_SERIES) + '$'), 

232 ], 

233 AMD_RX_5XX_SERIES_SUBMENU: [ 

234 CallbackQueryHandler(graph_func, pattern='^' + str(AMD_RX_550_SERIES) + '$'), 

235 CallbackQueryHandler(graph_func, pattern='^' + str(AMD_RX_560_SERIES) + '$'), 

236 CallbackQueryHandler(graph_func, pattern='^' + str(AMD_RX_580_SERIES) + '$'), 

237 ], 

238 AMD_RX_5XXX_SERIES_SUBMENU: [ 

239 CallbackQueryHandler(graph_func, pattern='^' + str(AMD_RX_5700_XT_SERIES) + '$') 

240 ], 

241 AMD_RX_6XXX_SERIES_SUBMENU: [ 

242 CallbackQueryHandler(graph_func, pattern='^' + str(AMD_RX_6400_SERIES) + '$'), 

243 CallbackQueryHandler(graph_func, pattern='^' + str(AMD_RX_6500_XT_SERIES) + '$'), 

244 CallbackQueryHandler(amd_series_func, pattern='^' + str(AMD_RX_66XX_SERIES) + '$'), 

245 CallbackQueryHandler(amd_series_func, pattern='^' + str(AMD_RX_67XX_SERIES) + '$'), 

246 CallbackQueryHandler(amd_series_func, pattern='^' + str(AMD_RX_68XX_SERIES) + '$'), 

247 CallbackQueryHandler(amd_series_func, pattern='^' + str(AMD_RX_69XX_SERIES) + '$'), 

248 ], 

249 AMD_RX_66XX_SERIES_SUBMENU: [ 

250 CallbackQueryHandler(graph_func, pattern='^' + str(AMD_RX_6600_SERIES) + '$'), 

251 CallbackQueryHandler(graph_func, pattern='^' + str(AMD_RX_6600_XT_SERIES) + '$'), 

252 CallbackQueryHandler(graph_func, pattern='^' + str(AMD_RX_6650_XT_SERIES) + '$'), 

253 ], 

254 AMD_RX_67XX_SERIES_SUBMENU: [ 

255 CallbackQueryHandler(graph_func, pattern='^' + str(AMD_RX_6700_SERIES) + '$'), 

256 CallbackQueryHandler(graph_func, pattern='^' + str(AMD_RX_6700_XT_SERIES) + '$'), 

257 CallbackQueryHandler(graph_func, pattern='^' + str(AMD_RX_6750_XT_SERIES) + '$'), 

258 ], 

259 AMD_RX_68XX_SERIES_SUBMENU: [ 

260 CallbackQueryHandler(graph_func, pattern='^' + str(AMD_RX_6800_SERIES) + '$'), 

261 CallbackQueryHandler(graph_func, pattern='^' + str(AMD_RX_6800_XT_SERIES) + '$'), 

262 ], 

263 AMD_RX_69XX_SERIES_SUBMENU: [ 

264 CallbackQueryHandler(graph_func, pattern='^' + str(AMD_RX_6900_SERIES) + '$'), 

265 CallbackQueryHandler(graph_func, pattern='^' + str(AMD_RX_6900_XT_SERIES) + '$'), 

266 CallbackQueryHandler(graph_func, pattern='^' + str(AMD_RX_6950_XT_SERIES) + '$'), 

267 ], 

268 INTEL_SERIES_SUBMENU: [ 

269 CallbackQueryHandler(graph_func, pattern='^' + str(ARC_A310_SERIES) + '$'), 

270 CallbackQueryHandler(graph_func, pattern='^' + str(ARC_A380_SERIES) + '$'), 

271 ], 

272 MATROX_SERIES_SUBMENU: [ 

273 CallbackQueryHandler(graph_func, pattern='^' + str(MATROX_M9120_SERIES) + '$'), 

274 ], 

275 GRAPH_SUBMENU: [ 

276 CallbackQueryHandler(graph_func, pattern='^' + str(GRAPH_MIN) + '$'), 

277 CallbackQueryHandler(graph_func, pattern='^' + str(GRAPH_AVERAGE) + '$'), 

278 CallbackQueryHandler(graph_func, pattern='^' + str(GRAPH_MAX) + '$'), 

279 CallbackQueryHandler(graph_func, pattern='^' + str(SHOW_30_DAYS) + '$'), 

280 CallbackQueryHandler(graph_func, pattern='^' + str(SHOW_60_DAYS) + '$'), 

281 CallbackQueryHandler(graph_func, pattern='^' + str(SHOW_90_DAYS) + '$'), 

282 CallbackQueryHandler(start_over, pattern='^' + str(BACK_TO_MENU) + '$') 

283 ], 

284 }, 

285 fallbacks=[ 

286 CommandHandler('start', start), 

287 MessageHandler(Filters.text & ~Filters.command, error_attention), 

288 ], 

289 ) 

290 

291 dispatcher.add_handler(conv_handler) 

292 

293 # Регистрация команд - ответы в Telegram 

294 dispatcher.add_handler(CommandHandler('help', help_func)) 

295 

296 # Старт бота 

297 updater.start_polling() 

298 

299 # Бот работает до прерывания Ctrl-C или получения stop команды 

300 updater.idle() 

301 

302 

303if __name__ == '__main__': 

304 main()