Neue Antwort schreiben 
 
Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Der Code-Schnippsel-Thread
Xaar Offline
Wahnsinnige Geschwindigkeit - und los!

Beiträge: 21.092
Registriert seit: Jul 2009
Beitrag #761
RE: Der Code-Schnippsel-Thread
Code:
ON A 0.1
O  E 0.1
=  A 0.1
UN A 0.1
UN A 3.0
=  M 1.0
S  A 3.0
UN A 0.1
UN M 1.0
R  A 3.0

«Ich verstehe Ihre Frage so: Dass es Menschen gibt, die wünschen, dass ein solches OS als "Retro-OS" bezeichnet wird, ja? Mir ist nicht bekannt, dass solche Absichten bestehen, da HP-UX 9.x einfach ein altes OS ist. Niemand hat die Absicht, ein "Retro-OS" zu bauen.» Xaar, 2014

Prozessor gesucht? -> Prozessoren, die ich abgeben kann (unter "Available for trading")
"Überschüssige" Prozessoren oder Hardware? -> Einfach PN an mich schicken b1 -> Hardware, die ich suche
19.01.2017 20:31
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Pain Offline
moderating tsundere

Beiträge: 6.863
Registriert seit: Jul 2008
Beitrag #762
RE: Der Code-Schnippsel-Thread
Code:
#!/bin/bash

while true
do
parse_uevent='
{
  split($0,a,"=");
  split(a[2],b," ");
  switch (a[1]) {
  case "POWER_SUPPLY_NAME":
    $5 = "BAT0"
    break
  case "POWER_SUPPLY_TECHNOLOGY":
    $5 = "Li-ion"
    break
  case "POWER_SUPPLY_MANUFACTURER":
    $5 = "SANYO"
    break
  case /POWER_SUPPLY_MODEL_NAME|POWER_SUPPLY_SERIAL_NUMBER/:
    $5 = a[3] "/" b[1]
    break
  case "POWER_SUPPLY_STATUS":
    if (a[3] == "Charging" || b[1] == "Charging") {
      $5 = "Charging"
      break
    }
    if (a[3] == "Discharging" || b[1] == "Discharging") {
      $5 = "Discharging"
      break
    }
    if (a[3] == "Full" || b[1] == "Full") {
      $5 = "Full"
      break
    }
    if (a[3] == "Unknown") {
      $5 = b[1]
      if (b[1] == "Unknown")
        $5 = "Full"
      break
    }
  case "POWER_SUPPLY_CAPACITY":
    $5 = (a[3] + b[1]) / 2;
    $5 = $5 > 100 ? 100 : $5
    break
  case "?":
    default: $5 = (a[3] + b[1]) / 2;
    break
  };
  print a[1] "=" $5;
}
'

paste /sys/class/power_supply/BAT{0..1}/uevent \
  | awk "$parse_uevent" \
  > $HOME/.uevent
sleep 5
done

Neu: Zwei Akkus im T450(s) unter i3status. Mein altes Skript ist unbrauchbar geworden.

[Bild: 28de98093e76373500356ee26bb6b737.gif]
Pains Thinkpad-Lieblinge im ThinkWiki
(Dieser Beitrag wurde zuletzt bearbeitet: 26.02.2017 19:30 von Pain.)
26.02.2017 19:29
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
DosAmp Offline
reach out, touch face

Beiträge: 11.362
Registriert seit: Jul 2008
Beitrag #763
RE: Der Code-Schnippsel-Thread
Code:
#!/usr/bin/env python3

import os, random, time
import dbus, NetworkManager as nm, requests

LOGIN_URL = "http://www.wifionice.de/?login"
REFERRER = "http://www.wifionice.de/"

CONNECTION_UUID = "8b82d562-eb9c-4f76-8a32-41f3228e8f13"
INTERFACE = "wlan0"

def random_hostname():
    randlet = []
    # NetBIOS-Namen sind maximal 15 Zeichen lang
    for i in range(12):
        randlet.append(random.randrange(0x61, 0x7b))
    # Windows-Zufallshostnamen hören auf "-PC" auf
    return "".join(map(chr, randlet)) + "-pc"

def random_mac_address():
    randbytes = bytearray(os.urandom(6))
    # Individual Address, Locally Administered Address
    randbytes[0] = (randbytes[0] & 0xfc) | 0x02
    return ":".join(map(lambda b: "{:02X}".format(b), randbytes))

if nm.NetworkManager.state() == nm.NM_STATE_CONNECTED_GLOBAL:
    print("Internet-Verbindung besteht bereits!")
    exit(0)
print("Setze zufällige MAC-Adresse und Hostnamen...")
connection = nm.Settings.GetConnectionByUuid(CONNECTION_UUID)
conn_settings = connection.GetSettings()
conn_settings["802-11-wireless"]["cloned-mac-address"] = random_mac_address()
conn_settings["ipv4"]["dhcp-hostname"] = random_hostname()
connection.Update(conn_settings)

print("Verbinde mit Netzwerk...")
interface = nm.NetworkManager.GetDeviceByIpIface(INTERFACE)
active_connection = nm.NetworkManager.ActivateConnection(connection, interface, dbus.ObjectPath("/"))
while active_connection.State != nm.NM_ACTIVE_CONNECTION_STATE_ACTIVATED:
    time.sleep(5)

print("Logge ein...")
resp = requests.get(LOGIN_URL, allow_redirects=False, headers={"Referer": REFERRER})
if resp.status_code == 302:
    if resp.headers["Location"] == "/":
        print("Login erfolgreich!")
    else:
        print("Login fehlgeschlagen! (Fehlerseite: {})".format(resp.headers["Location"]))
        exit(1)
elif resp.status_code == 200:
    # sollte nicht passieren, ist aber auch nicht tragisch
    pass
else:
    print("Login fehlgeschlagen! (Fehlercode: {})".format(resp.status_code))

D-Bus ist Krampf.


03.03.2017 16:43
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
mrshadowtux Offline
Klingt von Vinyl am besten

Beiträge: 26.161
Registriert seit: Jun 2010
Beitrag #764
RE: Der Code-Schnippsel-Thread
Und wozu braucht man Zufalls-Hostnamen?
03.03.2017 16:45
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
jeix Offline
langschläfer

Beiträge: 87
Registriert seit: Dec 2016
Beitrag #765
RE: Der Code-Schnippsel-Thread
(03.03.2017 16:45)mrshadowtux schrieb:  Und wozu braucht man Zufalls-Hostnamen?

[Bild: 15834007_303.jpg]
03.03.2017 16:48
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Pain Offline
moderating tsundere

Beiträge: 6.863
Registriert seit: Jul 2008
Beitrag #766
RE: Der Code-Schnippsel-Thread
(03.03.2017 16:45)mrshadowtux schrieb:  Und wozu braucht man Zufalls-Hostnamen?

Hotspots. Umgehen von Limits.

[Bild: 28de98093e76373500356ee26bb6b737.gif]
Pains Thinkpad-Lieblinge im ThinkWiki
04.03.2017 21:07
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
mrshadowtux Offline
Klingt von Vinyl am besten

Beiträge: 26.161
Registriert seit: Jun 2010
Beitrag #767
RE: Der Code-Schnippsel-Thread
Mehrere Akkus im Notebook und Polybar-User? Dieses Script von mir schafft Abhilfe:
[Bild: ec5385d65c0b652440f1ba07d7b9d3e7.png]

Code:
#!/bin/bash
count=$(acpi -b | wc -l)
sum=$(acpi -b | egrep -o '[0-9]{1,3}%' | tr -d '%' | xargs -I% echo -n '+%') #https://github.com/jaagr/polybar/issues/312
average=$(( sum / count ))

if acpi -b | grep -i until > /dev/null
then
    icon=""
else
    if [ "${average}" -lt 25 ]; then icon=""; fi
    if [ "${average}" -gt 25 ] && [ "${average}" -lt 90 ]; then icon=""; fi
    if [ "${average}" -gt 90 ] ; then icon=""; fi
fi
echo "${icon} ${average}%"
(Dieser Beitrag wurde zuletzt bearbeitet: 14.05.2017 23:18 von mrshadowtux.)
14.05.2017 23:18
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
DosAmp Offline
reach out, touch face

Beiträge: 11.362
Registriert seit: Jul 2008
Beitrag #768
RE: Der Code-Schnippsel-Thread
Das Skript führt zu irreführenden Ergebnissen, wenn man Akkus mit signifikant unterschiedlichen Kapazitäten verbaut hat (z. B. kleiner eingebauter Überbrückungs-Akku + normaler Akku oder normaler Akku + großer im Erweiterungsschacht). Es macht mehr Sinn, den gesamten Ladestand aller Akkus zu berechnen:
Code:
#!/bin/bash

total_charge=0
total_full=0
# anpassen, falls Batterien abweichende ACPI-Namen haben
for battery in /sys/class/power_supply/BAT*; do
    total_charge=$((total_charge + $(<$battery/energy_now)))
    total_full=$((total_full + $(<$battery/energy_full)))
done
# da beide Werte in Mikrowattstunden angegeben sind, verlieren wir hier keine
# nennenswerte Präzision; ist dennoch genauer als eine Prozentsumme geteilt
# durch eine kleine Ganzzahl
average=$((total_charge / (total_full / 100)))
#echo $average%


15.05.2017 00:02
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
mrshadowtux Offline
Klingt von Vinyl am besten

Beiträge: 26.161
Registriert seit: Jun 2010
Beitrag #769
RE: Der Code-Schnippsel-Thread
Danke für den Hinweis!

Neue Version:
[Bild: 1172ebd0b75492f05ec4af61335f30e7.png]

Code:
#!/bin/bash
total_charge=0
total_full=0

for battery in /sys/class/power_supply/BAT*
do
    total_charge=$((total_charge + $(<$battery/energy_now)))
    total_full=$((total_full + $(<$battery/energy_full)))
done

average=$((total_charge / (total_full / 100)))


if acpi -b | grep -i until > /dev/null
then
    icon=""
else
    if [ "${average}" -lt 25 ]; then icon=""; fi
    if [ "${average}" -gt 25 ] && [ "${average}" -lt 90 ]; then icon=""; fi
    if [ "${average}" -gt 89 ] ; then icon=""; fi
fi
echo "${icon} ${average}%"
(Dieser Beitrag wurde zuletzt bearbeitet: 15.05.2017 00:44 von mrshadowtux.)
15.05.2017 00:41
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Neue Antwort schreiben 


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste