Форум сайта python.su
### !!! MYSQL Connect f=open('/x/home/cfg/i5.mysql', 'r') mysql_cfg=f.read() f.close() host,user,passwd,db=mysql_cfg.strip().split('|') db = MySQLdb.connect(host=host, user=user, passwd=passwd, db=db, charset='cp1251') cursor = db.cursor()
${x} = Load Config For X ${y} = Load Config For Y
vc = await bot.join_voice_channel(voice_channel) vc_clients[message.server.id] = [vc] @bot.command(pass_context=True) async def play(ctx, url): try: player = await vc.create_ytdl_player(url) player.start() @bot.command(pass_context=True) async def pause(): player.pause() await bot.say('Музыка на паузе') @bot.command(pass_context=True) async def stop(): player.stop() await bot.say('Музыка остановлена') @bot.command(pass_context=True) async def resume(): player.resume() except: pass
from livewires import games games.init(screen_width = 640, screen_height = 480, fps = 50) games.screen.mainloop()
await asyncio.gather(*tasks)
'''Идем по листу: if следующее значение больше: Записываем предыдущее значение как минимальное. Записываем временное значение как максимальное. else: Записываем предыдущее значение как максимальное. Записываем временное значение как минимальное.'''
painter.setCompositionMode(QPainter::RasterOp_SourceAndNotDestination); or
painter.setCompositionMode(QPainter::RasterOp_SourceAndDestination);
painter.setCompositionMode(QPainter::RasterOp_SourceAndNotDestination); or
painter.setCompositionMode(QPainter::RasterOp_SourceAndDestination);
def paintEvent(self, QPaintEvent): painter = QPainter(self) painter.setCompositionMode(QPainter.RasterOp_SourceAndNotDestination)
from PyQt5.QtWidgets import * from PyQt5.QtCore import * from PyQt5.QtMultimedia import * from PyQt5.QtMultimediaWidgets import * from PyQt5.QtGui import * from functions.main_funcs import (getScreen) import os import configparser import config class VideoPlayer(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): self.setWindowFlags(Qt.FramelessWindowHint | Qt.Tool) # окно без рамок и заголовка, не отображается на панели задач self.setAttribute(Qt.WA_TranslucentBackground) # прозрачный бек окна self.setFixedSize(678, 398) self.setObjectName('VideoPlayer') # Объявляем позицию окна для последущей записи self.WF_wx = 0 self.WF_wy = 0 # CONFIG self.config = configparser.ConfigParser() # Media Player self.player = QMediaPlayer() self.player.setVolume(10) self.mediaFile = QMediaContent(None) # BG self.bg = QLabel(self) self.bg.setObjectName('bg') self.bg.setStyleSheet( "background-repeat: none; background-image: url(.data/img/videoPlayer2.png); background-position:0 0;") self.bg.setFixedSize(678, 398) self.bg.move(0, 0) self.bg.installEventFilter(self) # closeButton self.closeButton = QPushButton(self) self.closeButton.setObjectName('closeButton') style = """QPushButton {border-image: url(.data/img/x.png) 0 0 0 0 stretch stretch; border: 0px solid transparent;} QPushButton:hover {border-image: url(.data/img/x2.png) 0 0 0 0 stretch stretch; border: 0px solid transparent;} """ self.closeButton.setStyleSheet(style) self.closeButton.setCursor(Qt.PointingHandCursor) self.closeButton.setFixedSize(23, 22) self.closeButton.move(614, -1) self.closeButton.installEventFilter(self) self.closeButton.clicked.connect(self.closePlayer) # Total time self.totalTime = QLabel("00:00:00", self) self.totalTime.setObjectName('totalTime') self.totalTime.setStyleSheet("background: transparent; color:#409aff; font: 10px;") font = QFont("Tahoma") self.totalTime.setFont(font) self.totalTime.setFixedSize(40, 16) self.totalTime.move(46, 2) # Black Layer BG self.bg2 = QLabel(self) self.bg2.setObjectName('bg2') self.bg2.setStyleSheet("background: #000000;") self.bg2.setFixedSize(640, 360) self.bg2.move(19, 19) # VIDEO WIDGET self.mediaPlayer = QMediaPlayer(None, QMediaPlayer.VideoSurface) self.videoWidget = QVideoWidget(self) self.videoWidget.setObjectName('videoWidget') self.videoWidget.setFixedSize(640, 360) self.videoWidget.move(19, 19) self.videoWidget.show() self.mediaPlayer.setVideoOutput(self.videoWidget) self.mediaPlayer.setMedia(QMediaContent(QUrl("https://cs1-67v4.vk-cdn.net/p21/0f8a674b8080.1080.mp4"))) self.mediaPlayer.setVolume(10) self.mediaPlayer.play() self.show() # Получаем данные о расположении окна и записываем в конфиг положение окна если его нет screen = getScreen() widget_xy_x = int((screen[0] / 2) - 339) widget_xy_y = int((screen[1] / 2) - 199) try: self.config.read('config.ini', 'utf8') widget_xy_x = int(self.config.get('videPlayerXY', 'x')) widget_xy_y = int(self.config.get('videPlayerXY', 'y')) except configparser.NoSectionError: self.config.add_section('videPlayerXY') self.config.set('videPlayerXY', 'x', '0') self.config.set('videPlayerXY', 'y', '0') with open('config.ini', 'w', encoding='utf8') as configfile: self.config.write(configfile) finally: self.move(widget_xy_x, widget_xy_y) def handleError(self): print(self.mediaPlayer.errorString()) def closePlayer(self): # Закрываем окно self.mediaFile = QMediaContent(QUrl.fromLocalFile('.data/sounds/clickM.wav')) self.player.setMedia(self.mediaFile) self.player.play() self.hide() # Ловим события hover/click и т.д. def eventFilter(self, obj, event): # print(event.type()) if event.type() == 3: # clickButton pass elif event.type() == 10: # mouseEnter if obj.objectName() == 'closeButton': self.mediaFile = QMediaContent(QUrl.fromLocalFile('.data/sounds/hover.wav')) self.player.setMedia(self.mediaFile) self.player.play() elif event.type() == 11: # mouseLeave pass return False # Возможность перемещения окна def mousePressEvent(self, event): self.offset = event.pos() def mouseMoveEvent(self, event): x = event.globalX() y = event.globalY() x_w = self.offset.x() y_w = self.offset.y() w_x = x - x_w w_y = y - y_w # Вычисляем размеры экрана и не даем окну выходить за его пределы if (w_x < 0): w_x = 0 if (w_y < 0): w_y = 0 screen = getScreen() screen_w = screen[0] screen_h = screen[1] win_w = self.width() win_h = self.height() if (w_x > (screen_w - win_w)): w_x = screen_w - win_w if (w_y > (screen_h - win_h)): w_y = screen_h - win_h self.WF_wx = w_x self.WF_wy = w_y # двигаем окно по позиции self.move(w_x, w_y) def mouseReleaseEvent(self, event): # Записываем в конфиг положение окна после перетаскивания self.config.read('config.ini', 'utf8') self.config.set('videPlayerXY', 'x', str(self.WF_wx)) self.config.set('videPlayerXY', 'y', str(self.WF_wy)) with open('config.ini', 'w', encoding='utf8') as configfile: self.config.write(configfile) def toggle(self): if self.isHidden(): self.show() self.activateWindow() else: self.hide()
bool SM_PythonModule::reloadModule()
{
PyObject *mod;
PyObject *py_result;
PyGILState_STATE gilstate;
logMessage(tr("reloadModule() %1").arg(m_name),e_notify);
...... лишнее вырезано .......
gilstate = PyGILState_Ensure();
mod=PyImport_ReloadModule((PyObject *)m_module);
if (mod==NULL)
{
PyErr_Print();
PyGILState_Release(gilstate);
m_isActive=false;
logMessage(tr("reloadModule() ERROR"),e_notify);
return false;
};
m_module=mod;
m_executeRequestGet = PyObject_GetAttrString(mod, "executeRequestGet");
m_executeRequestSet = PyObject_GetAttrString(mod, "executeRequestSet");
m_broadcastNotification = PyObject_GetAttrString(mod, "broadcastNotification");
...... лишнее вырезано .......
PyGILState_Release(gilstate);
import urllib import urllib2 import json import time import hmac,hashlib def createTimeStamp(datestr, format="%Y-%m-%d %H:%M:%S"): return time.mktime(time.strptime(datestr, format)) class poloniex: def __init__(self, APIKey, Secret): self.APIKey = APIKey self.Secret = Secret def post_process(self, before): after = before # Add timestamps if there isnt one but is a datetime if('return' in after): if(isinstance(after['return'], list)): for x in xrange(0, len(after['return'])): if(isinstance(after['return'][x], dict)): if('datetime' in after['return'][x] and 'timestamp' not in after['return'][x]): after['return'][x]['timestamp'] = float(createTimeStamp(after['return'][x]['datetime'])) return after def api_query(self, command, req={}): if(command == "returnTicker" or command == "return24Volume"): ret = urllib2.urlopen(urllib2.Request('https://poloniex.com/public?command=' + command)) return json.loads(ret.read()) elif(command == "returnOrderBook"): ret = urllib2.urlopen(urllib2.Request('https://poloniex.com/public?command=' + command + '¤cyPair=' + str(req['currencyPair']))) return json.loads(ret.read()) elif(command == "returnMarketTradeHistory"): ret = urllib2.urlopen(urllib2.Request('https://poloniex.com/public?command=' + "returnTradeHistory" + '¤cyPair=' + str(req['currencyPair']))) return json.loads(ret.read()) else: req['command'] = command req['nonce'] = int(time.time()*1000) post_data = urllib.urlencode(req) sign = hmac.new(self.Secret, post_data, hashlib.sha512).hexdigest() headers = { 'Sign': sign, 'Key': self.APIKey } ret = urllib2.urlopen(urllib2.Request('https://poloniex.com/tradingApi', post_data, headers)) jsonRet = json.loads(ret.read()) return self.post_process(jsonRet) def returnTicker(self): return self.api_query("returnTicker") def return24Volume(self): return self.api_query("return24Volume") def returnOrderBook (self, currencyPair): return self.api_query("returnOrderBook", {'currencyPair': currencyPair}) def returnMarketTradeHistory (self, currencyPair): return self.api_query("returnMarketTradeHistory", {'currencyPair': currencyPair})
import urllib import urllib2 import json import time import hmac,hashlib def createTimeStamp(datestr, format="%Y-%m-%d %H:%M:%S"): return time.mktime(time.strptime(datestr, format)) class poloniex: def __init__(self, APIKey, Secret): self.APIKey = APIKey self.Secret = Secret def post_process(self, before): after = before # Add timestamps if there isnt one but is a datetime if('return' in after): if(isinstance(after['return'], list)): for x in xrange(0, len(after['return'])): if(isinstance(after['return'][x], dict)): if('datetime' in after['return'][x] and 'timestamp' not in after['return'][x]): after['return'][x]['timestamp'] = float(createTimeStamp(after['return'][x]['datetime'])) return after def api_query(self, command, req={}): if(command == "returnTicker" or command == "return24Volume"): ret = urllib2.urlopen(urllib2.Request('https://poloniex.com/public?command=' + command)) return json.loads(ret.read()) elif(command == "returnOrderBook"): ret = urllib2.urlopen(urllib2.Request('https://poloniex.com/public?command=' + command + '¤cyPair=' + str(req['currencyPair']))) return json.loads(ret.read()) elif(command == "returnMarketTradeHistory"): ret = urllib2.urlopen(urllib2.Request('https://poloniex.com/public?command=' + "returnTradeHistory" + '¤cyPair=' + str(req['currencyPair']))) return json.loads(ret.read()) else: req['command'] = command req['nonce'] = int(time.time()*1000) post_data = urllib.urlencode(req) sign = hmac.new(self.Secret, post_data, hashlib.sha512).hexdigest() headers = { 'Sign': sign, 'Key': self.APIKey } ret = urllib2.urlopen(urllib2.Request('https://poloniex.com/tradingApi', post_data, headers)) jsonRet = json.loads(ret.read()) return self.post_process(jsonRet) def returnTicker(self): return self.api_query("returnTicker") def return24Volume(self): return self.api_query("return24Volume") def returnOrderBook (self, currencyPair): return self.api_query("returnOrderBook", {'currencyPair': currencyPair}) def returnMarketTradeHistory (self, currencyPair): return self.api_query("returnMarketTradeHistory", {'currencyPair': currencyPair})
class ComboBoxWindow(Gtk.Window): def __init__(self): Gtk.Window.__init__(self, title="ComboBox Example") self.set_border_width(10) vbox = Gtk.Box(spacing=6) ifaces_combo = Gtk.ComboBoxText() ifaces_combo.set_entry_text_column(0) ifaces_combo.connect("changed", self.on_ifaces_combo_changed, self.on_ifaces_combo_changed) for iface in ifaces: ifaces_combo.append_text(iface) switch = Gtk.Switch() switch.connect("notify::active", self.on_switch_activated) switch.set_active(False) vbox.pack_start(ifaces_combo, False, False, 0) vbox.pack_start(switch, True, True, 0) self.add(vbox) def on_ifaces_combo_changed(self, combo): sel_iface = combo.get_active_text() if sel_iface != None: print("Selected interface =%s" % sel_iface) def on_switch_activated(self, switch, gparam): if switch.get_active(): state = "on" else: state = "off" print("Switch was turned", state) win = ComboBoxWindow() win.connect("delete-event", Gtk.main_quit) win.show_all() Gtk.main()
def prepareSQL(): con=odiRef.getJDBCConnection("SRC") #соединение с БД sql='''<%=odiRef.getOption("zapis")%> ''' #Выполнение запроса - возвращает названия return con.prepareStatement(sql) #нужных таблиц из системной prep = prepareSQL() rs=prep.executeQuery() f=open("C:\Temp\droptab4.txt","a") # Открываем файл на компе для записи while(rs.next()): #Пока есть записи записываем названия таблиц в файл. data=rs.getString("OBJ_NAME") #В этот же файл должна быть запись размера таблиц в мб f.write(data +" \n") f.close() # Закрываем файл prep.close()
while(rs.next()): data=rs.getString("OBJ_NAME") s=os.path.getsize(data) f.write(data +" \n" + s) f.close() prep.close()