From a3a5ebf2afe2f22d8c1f959b432d67654376e7ce Mon Sep 17 00:00:00 2001 From: arcan1s Date: Thu, 27 Mar 2014 20:09:46 +0400 Subject: [PATCH] release 1.5.3 --- PKGBUILD | 19 +- README.md | 2 + ext-sysmon-1.5.zip | Bin 5265 -> 0 bytes ext-sysmon-1.6.zip | Bin 0 -> 5556 bytes ext-sysmon/extsysmon.conf | 2 +- ext-sysmon/extsysmon.cpp | 281 +++++++++++---------- ext-sysmon/extsysmon.h | 4 +- ext-sysmon/plasma-engine-extsysmon.desktop | 2 +- kdeplasma-applets-pytextmonitor.install | 5 +- py-text-monitor-1.5.2.plasmoid | Bin 22075 -> 0 bytes py-text-monitor-1.5.3.plasmoid | Bin 0 -> 22264 bytes sources/contents/code/dataengine.py | 34 ++- sources/contents/code/main.py | 1 + sources/contents/code/reinit.py | 15 +- sources/contents/ui/configwindow.ui | 7 +- sources/metadata.desktop | 2 +- 16 files changed, 212 insertions(+), 162 deletions(-) delete mode 100644 ext-sysmon-1.5.zip create mode 100644 ext-sysmon-1.6.zip delete mode 100644 py-text-monitor-1.5.2.plasmoid create mode 100644 py-text-monitor-1.5.3.plasmoid diff --git a/PKGBUILD b/PKGBUILD index 321b12b..7dcfea9 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -3,13 +3,13 @@ pkgname=kdeplasma-applets-pytextmonitor _pkgname=py-text-monitor -pkgver=1.5.2 +pkgver=1.5.3 pkgrel=1 _dtengine=ext-sysmon -_dtver=1.5 +_dtver=1.6 pkgdesc="Minimalistic Plasmoid script written on Python2. It looks like widgets in awesome-wm" arch=('i686' 'x86_64') -url="https://github.com/arcan1s/pytextmonitor" +url="http://arcanis.name/projects/pytextmonitor" license=('GPL') depends=('kdebase-workspace' 'kdebindings-python2' 'lm_sensors' 'net-tools' 'sysstat') optdepends=("hddtemp: for HDD temperature monitor" @@ -22,25 +22,24 @@ makedepends=('automoc4' 'cmake') source=(https://github.com/arcan1s/pytextmonitor/releases/download/V.${pkgver}/${_pkgname}-${pkgver}.plasmoid https://github.com/arcan1s/pytextmonitor/releases/download/V.${pkgver}/${_dtengine}-${_dtver}.zip) install=${pkgname}.install -md5sums=('62a83e665d5a60e40891357a237cea1c' - 'e8c0e40298facf6f515f3c72c66b2aa0') +md5sums=('7fef048a8e000ccf9a1e5f0924f59cc2' + '74f42444a2bddce898d462045c3dbd44') backup=('usr/share/config/extsysmon.conf') -build () -{ +build () { # build dataengine if [[ -d ${srcdir}/${_dtengine}/build ]]; then rm -rf "${srcdir}/${_dtengine}/build" fi - mkdir "${srcdir}/${_dtengine}/build"; cd "${srcdir}/${_dtengine}/build" + mkdir "${srcdir}/${_dtengine}/build" + cd "${srcdir}/${_dtengine}/build" cmake -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=`kde4-config --prefix` \ ../ make } -package() -{ +package() { # install dataengine cd "${srcdir}/${_dtengine}/build" make DESTDIR="${pkgdir}" install diff --git a/README.md b/README.md index d0d4ccb..cff5609 100644 --- a/README.md +++ b/README.md @@ -31,6 +31,8 @@ For edited output you must open Settings window and setup output format in lines * label `$bat` - battery charge, %. Battery device may be set below. File (`/sys/class/power_supply/BAT0/capacity` by default) must contain only battery charge in percent * label `$ac` - status AC device. Return (*) if AC device is online or ( ) if offline. AC device may be set below. FIle (`/sys/class/power_supply/AC/online` by default) must contain `1` if AC is online * label `$artist` - current song artist. One of supported music players must be installed +* label `$progress` - current song progress. One of supported music players must be installed (mpd does not support yet) +* label `$time` - current song duration. One of supported music players must be installed * label `$title` - current song title. One of supported music players must be installed Label order will changed if you change slider position. HTML tags in label work normally. diff --git a/ext-sysmon-1.5.zip b/ext-sysmon-1.5.zip deleted file mode 100644 index c9e4c039336d1d1c60ad1228da7b2b8a67536593..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5265 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 * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA . * - ***************************************************************************/ +* Copyright (C) 2013 by Evgeniy Alekseev * +* * +* This program is free software; you can redistribute it and/or modify * +* it under the terms of the GNU General Public License as published by * +* the Free Software Foundation; either version 2 of the License, or * +* (at your option) any later version. * +* * +* This program is distributed in the hope that it will be useful, * +* but WITHOUT ANY WARRANTY; without even the implied warranty of * +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +* GNU General Public License for more details. * +* * +* You should have received a copy of the GNU General Public License * +* along with this program; if not, write to the * +* Free Software Foundation, Inc., * +* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA . * +***************************************************************************/ #include "extsysmon.h" #include #include +#include #include #include @@ -52,22 +53,20 @@ bool ExtendedSysMon::readConfiguration() f_out = popen("lspci 2> /dev/null", "r"); char device[256]; QString dev; - while (fgets(device, 256, f_out) != NULL) - { + while (fgets(device, 256, f_out) != NULL) { dev = QString(device); - if (dev.toLower().contains("nvidia")) - gpudev = QString("nvidia"); - else if (dev.toLower().contains("radeon")) - gpudev = QString("ati"); + if (dev.toLower().contains("nvidia")) + gpuDev = QString("nvidia"); + else if (dev.toLower().contains("radeon")) + gpuDev = QString("ati"); } pclose(f_out); f_out = popen("ls -1 /dev/sd[a-z] 2> /dev/null ; ls -1 /dev/hd[a-z] 2> /dev/null", "r"); - while (fgets(device, 256, f_out) != NULL) - { + while (fgets(device, 256, f_out) != NULL) { dev = QString(device).split("\n")[0]; if (dev[0] == '/') - hdddev.append(dev); + hddDev.append(dev); } pclose(f_out); @@ -79,8 +78,7 @@ bool ExtendedSysMon::readConfiguration() QString confFileName = QString(getenv("HOME")) + QString("/.kde4/share/config/extsysmon.conf"); QFile confFile(confFileName); bool exists = confFile.open(QIODevice::ReadOnly); - if (!exists) - { + if (!exists) { confFileName = QString("/usr/share/config/extsysmon.conf"); confFile.setFileName(confFileName); exists = confFile.open(QIODevice::ReadOnly); @@ -88,32 +86,24 @@ bool ExtendedSysMon::readConfiguration() return false; } - while (true) - { + while (true) { fileStr = QString(confFile.readLine()); - if (confFile.atEnd()) - break; - else if (fileStr[0] != '#') - { - if (fileStr.split(QString("="), QString::SkipEmptyParts).count() == 2) - { - if (fileStr.split(QString("="), QString::SkipEmptyParts)[0] == QString("GPUDEV")) - { + if (fileStr[0] != '#') { + if (fileStr.split(QString("="), QString::SkipEmptyParts).count() == 2) { + if (fileStr.split(QString("="), QString::SkipEmptyParts)[0] == QString("GPUDEV")) { if (fileStr.split(QString("="), QString::SkipEmptyParts)[1].split(QString("\n"), QString::SkipEmptyParts)[0] == QString("ati")) - gpudev = fileStr.split(QString("="), QString::SkipEmptyParts)[1].split(QString("\n"), QString::SkipEmptyParts)[0]; + gpuDev = fileStr.split(QString("="), QString::SkipEmptyParts)[1].split(QString("\n"), QString::SkipEmptyParts)[0]; else if (fileStr.split(QString("="), QString::SkipEmptyParts)[1].split(QString("\n"), QString::SkipEmptyParts)[0] == QString("nvidia")) - gpudev = fileStr.split(QString("="), QString::SkipEmptyParts)[1].split(QString("\n"), QString::SkipEmptyParts)[0]; + gpuDev = fileStr.split(QString("="), QString::SkipEmptyParts)[1].split(QString("\n"), QString::SkipEmptyParts)[0]; else if (fileStr.split(QString("="), QString::SkipEmptyParts)[1].split(QString("\n"), QString::SkipEmptyParts)[0] != QString("auto")) - gpudev = QString("ignore"); + gpuDev = QString("ignore"); } - else if (fileStr.split(QString("="), QString::SkipEmptyParts)[0] == QString("HDDDEV")) - { - if (fileStr.split(QString("="), QString::SkipEmptyParts)[1].split(QString("\n"), QString::SkipEmptyParts)[0] != QString("all")) - { - hdddev.clear(); + else if (fileStr.split(QString("="), QString::SkipEmptyParts)[0] == QString("HDDDEV")) { + if (fileStr.split(QString("="), QString::SkipEmptyParts)[1].split(QString("\n"), QString::SkipEmptyParts)[0] != QString("all")) { + hddDev.clear(); for (int i=0; i /dev/null | grep Gpu | tail -n1", "r"); fgets (output, 256, f_out); if ((output[0] == '\0') || (QString(output).split(QString(" "), QString::SkipEmptyParts).count() < 2)) value = QString(" N\\A"); - else - { + else { out = QString(output).split(QString(" "), QString::SkipEmptyParts)[2]; sprintf (val, "%5.1f", out.left(out.count()-2).toFloat(&ok)); value = QString(val); } pclose(f_out); } - else if (gpudev == QString("ati")) - { + else if (gpuDev == QString("ati")) { f_out = popen("aticonfig --od-getclocks 2> /dev/null | grep load | tail -n1", "r"); fgets (output, 256, f_out); if ((output[0] == '\0') || (QString(output).split(QString(" "), QString::SkipEmptyParts).count() < 3)) value = QString(" N\\A"); - else - { + else { out = QString(output).split(QString(" "), QString::SkipEmptyParts)[3]; sprintf (val, "%5.1f", out.left(out.count()-2).toFloat(&ok)); value = QString(val); } pclose(f_out); } - else - { + else { value = QString(" N\\A"); } if (ok == false) @@ -182,41 +168,35 @@ bool ExtendedSysMon::updateSourceEvent(const QString &source) value = value.split(QString(","), QString::SkipEmptyParts).join(QString(".")); setData(source, key, value); } - else if (source == QString("gputemp")) - { + else if (source == QString("gputemp")) { key = QString("GPUTemp"); - if (gpudev == QString("nvidia")) - { + if (gpuDev == QString("nvidia")) { f_out = popen("nvidia-smi -q -d TEMPERATURE 2> /dev/null | grep Gpu | tail -n1", "r"); fgets (output, 256, f_out); if ((output[0] == '\0') || (QString(output).split(QString(" "), QString::SkipEmptyParts).count() < 2)) value = QString(" N\\A"); - else - { + else { out = QString(output).split(QString(" "), QString::SkipEmptyParts)[2]; sprintf (val, "%4.1f", out.toFloat(&ok)); value = QString(val); } pclose(f_out); } - else if (gpudev == QString("ati")) - { + else if (gpuDev == QString("ati")) { f_out = popen("aticonfig --od-gettemperature 2> /dev/null | grep Temperature | tail -n1", "r"); fgets (output, 256, f_out); if ((output[0] == '\0') || (QString(output).split(QString(" "), QString::SkipEmptyParts).count() < 4)) value = QString(" N\\A"); - else - { + else { out = QString(output).split(QString(" "), QString::SkipEmptyParts)[4]; sprintf (val, "%4.1f", out.toFloat(&ok)); value = QString(val); } pclose(f_out); } - else - { + else { value = QString(" N\\A"); } if (ok == false) @@ -224,22 +204,19 @@ bool ExtendedSysMon::updateSourceEvent(const QString &source) value = value.split(QString(","), QString::SkipEmptyParts).join(QString(".")); setData(source, key, value); } - else if (source == QString("hddtemp")) - { + else if (source == QString("hddtemp")) { char command[256], *dev; QByteArray qb; - for (int i=0; i /dev/null", dev); + sprintf(command, "sudo hddtemp %s 2> /dev/null", dev); f_out = popen(command, "r"); fgets(output, 256, f_out); if ((output[0] == '\0') || (QString(output).split(QString(":"), QString::SkipEmptyParts).count() < 3)) value = QString(" N\\A"); - else - { + else { out = QString(output).split(QString(":"), QString::SkipEmptyParts)[2]; sprintf (val, "%4.1f", out.left(out.count()-4).toFloat(&ok)); value = QString(val); @@ -248,74 +225,120 @@ bool ExtendedSysMon::updateSourceEvent(const QString &source) if (ok == false) value = QString(" N\\A"); value = value.split(QString(","), QString::SkipEmptyParts).join(QString(".")); - setData(source, hdddev[i], value); + setData(source, hddDev[i], value); } } - else if (source == QString("player")) - { + else if (source == QString("player")) { + QProcess player; + QString qoutput; + QString value_album, value_artist, value_progress, value_duration, qstr; // qmmp - output[0] = '\0'; + qoutput = QString(""); + value = QString("N\\A"); + value_album = QString("N\\A"); + value_artist = QString("N\\A"); + value_progress = QString("0"); + value_duration = QString("0"); + player.start("qmmp --status"); + player.waitForFinished(-1); + qoutput = player.readAllStandardOutput(); + for (int i=0; i /dev/null", "r"); - fgets(output, 256, f_out); - if (output[0] == '\0') - value = QString("N\\A"); - else - value = QString(output).split(QString("\n"), QString::SkipEmptyParts)[0]; - pclose(f_out); - setData(source, key, value); - output[0] = '\0'; + setData(source, key, value_artist); + key = QString("qmmp_progress"); + setData(source, key, value_progress); + key = QString("qmmp_duration"); + setData(source, key, value_duration); key = QString("qmmp_title"); - f_out = popen("qmmp --nowplaying '%if(%t,%t,Unknown)' 2> /dev/null", "r"); - fgets(output, 256, f_out); - if (output[0] == '\0') - value = QString("N\\A"); - else - value = QString(output).split(QString("\n"), QString::SkipEmptyParts)[0]; - pclose(f_out); setData(source, key, value); // amarok - output[0] = '\0'; + qoutput = QString(""); + value = QString("N\\A"); + value_album = QString("N\\A"); + value_artist = QString("N\\A"); + value_progress = QString("0"); + value_duration = QString("0"); + player.start("qdbus org.kde.amarok /Player GetMetadata"); + player.waitForFinished(-1); + qoutput = player.readAllStandardOutput(); + for (int i=0; i /dev/null | grep albumartist: | cut -c14-", "r"); - fgets(output, 256, f_out); - if (output[0] == '\0') - value = QString("N\\A"); - else - value = QString(output).split(QString("\n"), QString::SkipEmptyParts)[0]; - pclose(f_out); - setData(source, key, value); - output[0] = '\0'; + setData(source, key, value_artist); + key = QString("amarok_progress"); + setData(source, key, value_progress); + key = QString("amarok_duration"); + setData(source, key, value_duration); key = QString("amarok_title"); - f_out = popen("qdbus org.kde.amarok /Player GetMetadata 2> /dev/null | grep title: | cut -c8-", "r"); - fgets(output, 256, f_out); - if (output[0] == '\0') - value = QString("N\\A"); - else - value = QString(output).split(QString("\n"), QString::SkipEmptyParts)[0]; - pclose(f_out); setData(source, key, value); // mpd - QString value_artist; value = QString("N\\A"); + value_album = QString("N\\A"); value_artist = QString("N\\A"); + value_progress = QString("0"); + value_duration = QString("0"); char commandStr[512]; sprintf (commandStr, "echo 'currentsong\nclose' | curl --connect-timeout 1 -fsm 3 telnet://%s:%s 2> /dev/null", \ - mpdAddress.toUtf8().data(), mpdPort.toUtf8().data()); - f_out = popen(commandStr, "r"); - while (true) - { - fgets(output, 256, f_out); - if (feof (f_out)) - break; - if (QString(output).split(QString(": "), QString::SkipEmptyParts)[0] == QString("Artist")) - value_artist = QString(output).split(QString(": "), QString::SkipEmptyParts)[1].split(QString("\n"), QString::SkipEmptyParts)[0]; - else if (QString(output).split(QString(": "), QString::SkipEmptyParts)[0] == QString("Title")) - value = QString(output).split(QString(": "), QString::SkipEmptyParts)[1].split(QString("\n"), QString::SkipEmptyParts)[0]; + mpdAddress.toUtf8().data(), mpdPort.toUtf8().data()); + qoutput = QString(""); + player.start(QString(commandStr)); + player.waitForFinished(-1); + qoutput = player.readAllStandardOutput(); + for (int i=0; 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 diff --git a/py-text-monitor-1.5.3.plasmoid b/py-text-monitor-1.5.3.plasmoid new file mode 100644 index 0000000000000000000000000000000000000000..061aa74b28e8bc627c7ef7e5f529eb19955730aa GIT binary patch literal 22264 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 10): - line = self.parent.playerFormat.split('$artist')[0] + artist[:5] + u"…" + self.parent.playerFormat.split('$artist')[1] - else: - line = self.parent.playerFormat.split('$artist')[0] + artist + self.parent.playerFormat.split('$artist')[1] - else: - line = self.parent.playerFormat + progress = str(data[QString(u'qmmp_progress')]) + time = str(data[QString(u'qmmp_duration')]) + title = str(data[QString(u'qmmp_title')]) + line = self.parent.playerFormat + if (line.split('$album')[0] != line): + line = line.split('$album')[0] + album + line.split('$album')[1] + if (line.split('$artist')[0] != line): + line = line.split('$artist')[0] + artist + line.split('$artist')[1] + if (line.split('$progress')[0] != line): + timeText = '%02i:%02i' % (int(time)/60, int(time)%60) + line = line.split('$progress')[0] + timeText + line.split('$progress')[1] + if (line.split('$time')[0] != line): + timeText = '%02i:%02i' % (int(time)/60, int(time)%60) + line = line.split('$time')[0] + timeText + line.split('$time')[1] if (line.split('$title') != line): line = line.split('$title')[0] + title + line.split('$title')[1] text = self.parent.formatLine.split('$LINE')[0] + line + self.parent.formatLine.split('$LINE')[1] diff --git a/sources/contents/code/main.py b/sources/contents/code/main.py index 444735a..366bbff 100644 --- a/sources/contents/code/main.py +++ b/sources/contents/code/main.py @@ -116,6 +116,7 @@ class pyTextWidget(plasmascript.Applet): # setup number of cores commandOut = commands.getoutput("grep -c '^processor' /proc/cpuinfo") self.numCores = int(commandOut) + self.tempdev = "tempdevice" # create dictionaries self.dict_orders = {'6':'bat', '1':'cpu', '7':'cpuclock', '9':'gpu', 'a':'gputemp', diff --git a/sources/contents/code/reinit.py b/sources/contents/code/reinit.py index 3030cbe..79f0694 100644 --- a/sources/contents/code/reinit.py +++ b/sources/contents/code/reinit.py @@ -298,12 +298,17 @@ class Reinit(): self.parent.playerFormat = str(settings.get('playerFormat', '[$artist - $title]')) self.parent.player_name = settings.get('player_name', 0).toInt()[0] self.parent.label_player = NewPlasmaLabel(self.parent.applet, self.parent) - if (self.parent.playerFormat.split('$artist')[0] != self.parent.playerFormat): - line = self.parent.playerFormat.split('$artist')[0] + '----------' + self.parent.playerFormat.split('$artist')[1] - else: - line = self.parent.playerFormat + line = self.parent.playerFormat + if (line.split('$album')[0] != line): + line = line.split('$album')[0] + 'N\\A' + line.split('$album')[1] + if (line.split('$artist')[0] != line): + line = line.split('$artist')[0] + 'N\\A' + line.split('$artist')[1] + if (line.split('$progress')[0] != line): + line = line.split('$progress')[0] + '00:00' + line.split('$progress')[1] if (line.split('$title') != line): - line = line.split('$title')[0] + '----------' + line.split('$title')[1] + line = line.split('$title')[0] + 'N\\A' + line.split('$title')[1] + if (line.split('$time') != line): + line = line.split('$time')[0] + '00:00' + line.split('$time')[1] text = self.parent.formatLine.split('$LINE')[0] + line + self.parent.formatLine.split('$LINE')[1] self.parent.label_player.setText(text) self.parent.layout.addItem(self.parent.label_player) diff --git a/sources/contents/ui/configwindow.ui b/sources/contents/ui/configwindow.ui index 1712806..a0e1db6 100644 --- a/sources/contents/ui/configwindow.ui +++ b/sources/contents/ui/configwindow.ui @@ -948,8 +948,11 @@ $ac - AC status - $title - song title -$artist - song artist + $album - song album +$artist - song artist +$progress - song progress +$time - song duration +$title - song title Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter diff --git a/sources/metadata.desktop b/sources/metadata.desktop index 556f145..ef8dfa3 100644 --- a/sources/metadata.desktop +++ b/sources/metadata.desktop @@ -12,7 +12,7 @@ X-Plasma-RequiredExtensions=LaunchApp,LocalIO,FileDialog X-KDE-PluginInfo-Author=Evgeniy Alekseev aka arcanis X-KDE-PluginInfo-Email=esalexeev@gmail.com X-KDE-PluginInfo-Name=py-text-monitor -X-KDE-PluginInfo-Version=1.5.2 +X-KDE-PluginInfo-Version=1.5.3 X-KDE-PluginInfo-Website=http://kde-look.org/ X-KDE-PluginInfo-Category=System Information X-KDE-PluginInfo-Depends=