LINUX.ORG.RU

Сообщения noname_user

 

Чем плох systemd?

Форум — General

Интересует, почему все так не любят systemd, в этом плане мало опыта, хотелось бы реальные факты и недостатки узнать

 

noname_user
()

Чем проигрывать remote audio в python с возможностью использовать эквалайзер?

Форум — Development

По сабжу, пока ничего не нарыл, максимум что юзал - vlc, gst

 , , ,

noname_user
()

слудующая кнопка в qhbox (вложенность)

Форум — Development

Проблема в том, что по окончанию трека в плеере, нужно воспроизводить следующий и соответственно менять статус кнопки проигрываемого трека.
Вот так треки добавляются с кнопками: https://github.com/foozzi/yaudio/blob/master/src/yaudio.py#L141

Я делал так:

for s in self.vbox.children():
в «s» у нас все QtWidgets.QHBoxLayout, соотстветственно если по ним так же пройтись циклом, можно выловить все кнопки и лейблы в них вложенные, но при s.children() я получаю пустые массивы...

 , ,

noname_user
()

Как получить все qpushbutton в hbox или выбрать следующую от имеющейся в переменной

Форум — Development

Вопрос состоит в том, как собственно выбрать следующую кнопку после имеющейся в переменной, к примеру через определенное время мне нужно что то сделать с кнопкой, идущей по порядку (добавлялись они все по порядку в цикле) в hbox.

 , ,

noname_user
()

gif анимация в qpushbutton pyqt5

Форум — Development

Собственно как реализовать гиф анимацию в кнопке, например что бы осущствить вид загрущки чего либо. qtawesome пробовал, который font-awesome вставляет в кнопку, но с ним возникли проблемы.

 , , ,

noname_user
()

ревью кода проекта

Форум — Development

Собственно написал первую более менее нужную тулзу, на pyqt5, пишу на этом всем месяц или полтора, хочу услышать критику и поправки которые мне следует учесть в дальнейшем написании кода.
https://github.com/foozzi/yaudio

 ,

noname_user
()

После открытия крышки ноутбука на antergos xfce 4.12 мерцающий курсор ввода текста на черном фоне

Форум — Desktop

Если закрыть крышку ноута и после открыть ее вновь, соостветсвенно выведя ноут из слип мода, выходит лишь черный экран с мерцающим курсором ввода текста, помогает перезагрузка.

 , , ,

noname_user
()

Как понять что qlineedit активен (имеет фокус)?

Форум — Development
def keyPressEvent(self, e):		
		if e.key() == Qt.Key_Escape:
			self.close()
		elif e.key() == Qt.Key_Return:
			self._search_music()

Собственно требуется что бы при нажатии на enter, так же проверялось имеет ли фокус qlineedit где введена поисковая фраза

 , ,

noname_user
()

Убить процесс загрузки стрима в vlc.py

Форум — Development

Создаю плеер таким образом:

self.vlcInstance = vlc.Instance("--no-xlib --verbose 2")
self.player = self.vlcInstance.media_player_new()
self.player.set_mrl(<линк на стрим>)
self.player.play()
К примеру я запустил стрим, и тут же нажал на другой, то есть пошел процесс получения линка (до 5 сек.). Нужно дать понять vlc что бы он не запускал 2й канал, так как сколько бы я не запустил стримов, столько он их будет воспроизводить одновременно.
Вот поток в плеере (pyqt5):
class Play(QtCore.QThread):	
	sig = QtCore.pyqtSignal(int, int)

	def __init__(self, parent=None, *data):
		super(Play, self).__init__(parent)	

		self.parent = parent
		self.id = data[0]		

		self.parent.is_stop = False

		self.sig.connect(self.parent.updateProgress)
		self.playback = Streamer()
		self.start()

	def run(self):						
		uri = helpers.search.get_youtube_streams(self.id)
		self.playback.play(uri['audio'])

	def stop(self):
		self.playback.stop()
		self.exit()	
		return
Ну и сам враппер для плеера:
import vlc
import requests
from PyQt5 import QtCore

class Streamer():

	def __init__(self, *data):
		self.vlcInstance = vlc.Instance("--no-xlib --verbose 2")
		self.player = self.vlcInstance.media_player_new()


	def stop(self):
		self.player.stop()
		return

	def pause(self):
		pass

	def get_position(self):
		return self.player.get_position()

	def play(self, uri):		
		r = requests.get(uri)
		if r.status_code == 200:			
			print('play')
			
			self.player.set_mrl(uri)
			self.player.play()
		else:
			return
Завершение потока с помощью .exit() не решает проблему.

 , ,

noname_user
()

3й день мучений с добавлением виджетов в цикле pygtk

Форум — Development

3й день страданий и гуглений не дали пользы, либо я получаю ошибку сегментирования, либо i/o, либо вообще ошибку x server'а.
вот весь код тулзы: https://github.com/foozzi/yaudio/blob/master/yaudio.py#L169
Подскажите, правильно ли я в цикле добавляю виджеты? Либо это может возникнуть из-за того, как я устроил поток?
Еще одно, как собственно такие дела дебагать? 3й день пишу на pygtk...

 , ,

noname_user
()

cli интерфейс для python

Форум — Development

Есть ли что то подобное для python как например это - https://github.com/roecrew/menu ?

 , ,

noname_user
()

Поточность в аудио плеере python3+vlc+pygtk

Форум — Development

Пишу небольшой плеер, стримит аудио из youtube. Сделал поток для проигрывания, но при переключении трека, пишет:
RuntimeError: threads can only be started once
Конечно, я мог бы использовать thread.join() для завершения потока, но при его использовании gui блочит... скорее всего я просто делаю что то не так.
Все ли правильно я использую в потоках? И как сделать это правильней и без ошибок?
main.py - https://pastebin.com/8fH0dreA
player.py - https://pastebin.com/xDLt64P2

 , , ,

noname_user
()

Gtk.ScrolledWindow не работает для Gtk.HBox?

Форум — Development

Вот сэмпл

self.scrolled = Gtk.ScrolledWindow()
        self.scrolled.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC)

        for _ in vids:
            attrs = helpers.search.get_video_attrs(_)
            
            self.label_p = Gtk.Label(attrs['title'])
            self.listhbox = Gtk.HBox()
            self.vbox.pack_start(self.listhbox, False, False, 5)
            self.button_p = Gtk.Button()
            self.play_image = Gtk.Image.new_from_icon_name(
                "gtk-media-play",
                Gtk.IconSize.MENU
            )
            self.button_p.set_image(self.play_image)
            self.button_p.connect("clicked", self.on_click_me_clicked, attrs['id'])
            self.listhbox.pack_start(self.button_p, False, True, 2)
            self.listhbox.pack_start(Gtk.HSeparator(), False, False, 2)
            self.listhbox.pack_start(self.label_p, False, True, 2)

        self.scrolled.add(self.listhbox)

Элементов добавляется довольно много, но скролинг не появляется, что в данном случае может помочь? Перепробовал уйму вариантов

 , ,

noname_user
()

pygtk3 и обновление слайдера...

Форум — Development

Собственно сделал стрим плеер, впилил туда слайдер:

self.slider_update_signal_id = self.slider.connect(
            "value-changed", self.on_slider_changed)
В качестве стримера использую vlc (python-vlc), при изменении слайдера соответсвенно мотаем трек
def on_slider_changed(self, range):
        length = self.slider.get_value()
        self.player.set_position(length / 100.0)
Но теперь столкнулся с такой бедой, мне ведь нужно еще и слайдер обновлять до той позиции, на котором стримится трек
Пробовал довольно примитивно:

GObject.timeout_add(200, self.timing) # вызов после начала проигрывания плеера

и метод:

def timing(self):
        length = self.player.get_position()
        self.slider.set_value(length * 100.0)
        return True
Кто уже понял, при обновлении слайдера, перематывает трек, и все это начинает заикаться, каким образом можно это грамотно сделать?

UPD: Еще пробовал с потоками:

thread = threading.Thread(target=self.timing)
thread.daemon = True
thread.start()
В методе self.timing стояло while True со слипом (и без, лол)

 , ,

noname_user
()

Впорос по потокам в python

Форум — Development

Не так давно осилил потоки в python, и тут встал вопрос. Например есть файл, который нужно перебирать построчно, в 5 потоков, каким образом мне дать понять 2,3... потокам, что 1 уже прогнал N строку и больше проходить по ней не нужно?

 ,

noname_user
()

библиотека для парсинга своего конфига

Форум — Development

В данный момент разрабатываю одну тулзу, хочу для нее сделать конфиги кастомные (как например в robot framework для парсинга).
Кто то имел опыт в таком? Реально ли что лучше всего использовать только регулярные выражения?

 ,

noname_user
()

Существуют ли готовые модули/скрипты для парсинга сайта и его статики по директориям? (python)

Форум — Development

Сабж. Инересует именно код, который мог бы парсить все страницы относящиеся к домену и статику для этих страниц (js,css)
Есть ли что то готовое?

 ,

noname_user
()

Внезапно упал apache на arch

Форум — Admin

Поставил на арч httpd, все ок, но буквально через 2 мин выполнил:

systemctl restart httpd.service
в логах /var/log/httpd/error_log ничего нет (хотя и не долно быть), при ребуте httpd выхлопа нету никакого в консоли, подскажите где глянуть логи самого httpd, что бы выяснить суть проблемы.

 , , ,

noname_user
()

Чем собрать pyqt5 app?

Форум — Development

ОС: Manjaro
Пытался поставить cx_freezy:

    gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -fPIC -I/usr/include/python3.6m -c source/bases/Console.c -o build/temp.linux-x86_64-3.6/source/bases/Console.o
    creating build/lib.linux-x86_64-3.6/cx_Freeze/bases
    gcc -pthread build/temp.linux-x86_64-3.6/source/bases/Console.o -L/usr/lib/python3.6/config-3.6m-x86_64-linux-gnu -L/usr/lib -lpython3.6m -lpython3.6m -o build/lib.linux-x86_64-3.6/cx_Freeze/bases/Console -Xlinker -export-dynamic -lpthread -ldl -lutil -lm -s
    lto1: критична помилка: bytecode stream generated with LTO version 5.1 instead of the expected 5.2
    компіляцію перервано.
    lto-wrapper: критична помилка: gcc returned 1 exit status
    компіляцію перервано.
    /usr/bin/ld: error: lto-wrapper failed
    collect2: помилка: ld returned 1 exit status
    error: command 'gcc' failed with exit status 1
    
    ----------------------------------------
Command "/home/foozzi/pymine/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-_mlqjdtj/cx-Freeze/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-bubxuy4y-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/foozzi/pymine/include/site/python3.6/cx-Freeze" failed with error code 1 in /tmp/pip-build-_mlqjdtj/cx-Freeze/    
Так и не удалось, да и требуется мне это все дело собрать еще и под win32 и все это из под arch.
Можете что то предложить?

 , , ,

noname_user
()

Что за base64?

Форум — Security

Есть хеш на base64, но при декоде получаю иероглифы: 87MEUOZ1A/SLNqgqyiGDwWw+Yk0=
В чем проблема и реально ли получить желаемое в хеше?

 ,

noname_user
()

RSS подписка на новые темы