Argentinec, který byl náhodně zachycen Google Street View kamerou, jak se zcela nahý prochází po svém dvorku, vysoudil od internetového giganta odškodné. Soud uznal, že jeho soukromí bylo opravdu porušeno – Google mu má vyplatit v přepočtu asi 12 500 dolarů.
Eben Upton, CEO Raspberry Pi Holdings, informuje o RP2350 A4, RP2354 a nové hackerské výzvě. Nový mikrokontrolér RP2350 A4 řeší chyby, i bezpečnostní, předchozího RP2350 A2. RP2354 je varianta RP2350 s 2 MB paměti. Vyhlášena byla nová hackerská výzva. Vyhrát lze 20 000 dolarů.
Představen byl notebook TUXEDO InfinityBook Pro 15 Gen10 s procesorem AMD Ryzen AI 300, integrovanou grafikou AMD Radeon 800M, 15,3 palcovým displejem s rozlišením 2560x1600 pixelů. V konfiguraci si lze vybrat až 128 GB RAM. Koupit jej lze s nainstalovaným TUXEDO OS nebo Ubuntu 24.04 LTS.
Po půl roce od vydání verze 2.41 byla vydána nová verze 2.42 knihovny glibc (GNU C Library). Přehled novinek v poznámkách k vydání a v souboru NEWS. Vypíchnout lze například podporu SFrame. Opraveny jsou zranitelnosti CVE-2025-0395, CVE-2025-5702, CVE-2025-5745 a CVE-2025-8058.
Byla vydána nová verze 9.15 z Debianu vycházející linuxové distribuce DietPi pro (nejenom) jednodeskové počítače. Přehled novinek v poznámkách k vydání.
Společnost CORSAIR podporuje svůj systém iCUE LINK pouze ve Windows a macOS. Jak jej ovládat v Linuxu? OpenLinkHub (GitHub) je open source linuxové rozhraní k iCUE LINK. Z webového rozhraní na adrese http://localhost:27003 lze ovládat RGB osvětlení, rychlost ventilátorů, nastavovat klávesnice, myši, headsety…
Ve funkci koordinátora k bitcoinové kauze skončil bývalý ústavní soudce David Uhlíř. Informaci, kterou zveřejnil Deník N, potvrdila Radiožurnálu ministryně spravedlnosti Eva Decriox (ODS). Uvedla, že odchod byl po vzájemné dohodě. „Jeho mise je ukončená, auditní procesy se už povedlo nastavit,“ řekla. Teď má podle ministryně další kroky podniknout policie a státní zastupitelství. Koordinátorem jmenovala ministryně Uhlíře 19. června.
Byla vydána nová verze 25.07.26 svobodného multiplatformního video editoru Shotcut (Wikipedie) postaveného nad multimediálním frameworkem MLT. Nejnovější Shotcut je již vedle zdrojových kódů k dispozici také ve formátech AppImage, Flatpak a Snap.
Po 9 týdnech vývoje od vydání Linuxu 6.15 oznámil Linus Torvalds vydání Linuxu 6.16. Přehled novinek a vylepšení na LWN.net: první a druhá polovina začleňovacího okna a Linux Kernel Newbies.
Americký výrobce čipů Intel propustí 15 procent zaměstnanců (en), do konce roku by jich v podniku mělo pracovat zhruba 75.000. Firma se potýká s výrobními problémy a opouští také miliardový plán na výstavbu továrny v Německu a Polsku.
S elinksem jsem tez neuspel, muzete me nekdo nakopnout s tim sedem, awkem a dalsimi kamarady?Jak neuspěl? Já toto zkusil :
elinks -dump-width 150 -dump http://www.ebanka.cz/Firemni-finance/Firemni-ucet/Transparentni-ucet/trAccountDetail.jsp?accountNumber=2588438001a obdržel jsem pěkný textový výpis, který už by neměl být problém dále zpracovávat ve skriptu (za pomoci potřebných programů, jako sed, grep, sort, ......) a dovést ho do potřebné struktury.
xmllint
?
<?php
$string = strstr(file_get_contents ('dataget2'), '<tbody>');
$pozice = strpos ($string, '</tbody>');
$string2 = substr ($string, 0, $pozice);
#$string3 = html_entity_decode ($string2);
$dopryc = array(" class=\"odd\"", " class=\"even\"", "\n", " ", "<tbody>", " ", "td", "br");
$string3 = str_replace($dopryc, "", $string2);
$string4 = str_replace("</tr>", "</tr>\n", $string3);
$dopryc = array("<", ">", "tr");
$string5 = str_replace($dopryc, "", $string4);
$string6 = str_replace("/", ";", $string5);
$dopryc = array(";;;;;;", ";;;;;", ";;;", ";;");
$string7 = str_replace($dopryc, ";", $string6);
echo $string7;
?>
Zdenek
use HTML::TableExtract;
a přes něj se pak dá (mj.):
Datum: 2007-01-05 04:21:39.0 Variabilni symbol: 28 Castka: 400.00 Datum: 2007-01-03 05:35:26.0 Variabilni symbol: 5 Castka: 400.00 Datum: 2007-01-03 05:35:23.0 Variabilni symbol: 33 Castka: 400.00 Datum: 2007-01-03 05:33:14.0 Variabilni symbol: 51 Castka: 800.00 Datum: 2007-01-02 09:36:02.0 Variabilni symbol: 16 Castka: 400.00 Datum: 2007-01-02 05:57:28.0 Variabilni symbol: 49 Castka: 400.00 Datum: 2007-01-01 23:59:59.0 Variabilni symbol: Castka: Datum: 2006-12-31 23:59:59.0 Variabilni symbol: Castka: 0.04 Datum: 2006-12-28 06:40:52.0 Variabilni symbol: 8 Castka: 400.00 Datum: 2006-12-28 05:48:15.0 Variabilni symbol: 48 Castka: 400.00 Datum: 2006-12-20 17:57:35.0 Variabilni symbol: Castka: 1000.00Navíc je použita primitivní cache, která stáhne zdrojový kód z netu jen tehdy, pokud ho nenajde již dříve uložený na disk (což se hodí při ladění).
#!/usr/bin/env python import urllib2 from HTMLParser import HTMLParser class MyHTMLParser(HTMLParser): def parse(self, html): self.tdcounter = 0 self.within_tbody = False self.thead_found = False self.platby = [] self.platba_parsed = [] self.feed(html) self.close() def handle_starttag(self, tag, attrs): if tag == 'td': self.tdcounter += 1 if tag == 'tbody' and self.thead_found: self.within_tbody = True def handle_data(self, data): if 'VARIABIL' in data: self.thead_found = True if self.within_tbody: if self.tdcounter in (4,13,17): self.platba_parsed.append(data.strip()) def handle_startendtag(self, tag, attrs): if self.within_tbody and tag == 'br': self.tdcounter += 1 def handle_endtag(self, tag): if tag == 'tr': self.tdcounter = 0 if self.platba_parsed: self.platby.append(self.platba_parsed) self.platba_parsed = [] if tag == 'tbody': self.within_tbody = False url = 'http://www.ebanka.cz/Firemni-finance/Firemni-ucet/Transparentni-ucet/trAccountDetail.jsp?accountNumber=2588438001' htmlcache = 'ebanka_cache' try: contents = file(htmlcache).read() except: handler = urllib2.urlopen(url) contents = handler.read() handler.close() file(htmlcache, 'w').write(contents) parser = MyHTMLParser() parser.parse(contents) for datum, varsymb, castka in parser.platby: print 'Datum: %s Variabilni symbol: %s Castka: %s'%( datum, varsymb, castka)
// ==UserScript== // @name eBanka // @description eBanka // @include http://www.ebanka.cz/Firemni-finance/Firemni-ucet/Transparentni-ucet/trAccountDetail.jsp* // ==/UserScript== function lTrim(value) { var r = /\s*((\S+\s*)*)/; return value.replace(r, "$1"); } function rTrim(value) { var r = /((\s*\S+)*)\s*/; return value.replace(r, "$1"); } function trim(value) { return lTrim(rTrim(value)); } window.addEventListener( 'load', function() { var table, tbody, rows, columns, items, txt; txt = ""; line = new Array(16); table = document.getElementsByTagName('table')[0]; if (!table) { alert('Nemôžem nájsť <table>'); return; } tbody = table.getElementsByTagName('tbody')[0]; if (!tbody) { alert('Nemôžem nájsť <tbody>'); return; } rows = tbody.getElementsByTagName('tr'); for (var i = 0; i < rows.length; i++) { row = rows[i]; columns = row.getElementsByTagName('td'); if (columns.length != 7) { alert('Zlý počet stĺpcov:' + columns.length); return; } items = columns[0].textContent.split('\n'); line[0] = items[1]; // poradove cislo items = columns[1].textContent.split('\n'); line[1] = items[1]; // datum line[2] = items[2]; // cas items = columns[2].textContent.split('\n'); line[3] = items[1]; // poznamka line[4] = items[2]; // nazov uctu line[5] = items[3]; // cislo uctu items = columns[3].textContent.split('\n'); line[6] = items[1]; // datum odpisania line[7] = items[2]; // valuta line[8] = items[3]; // typ items = columns[4].textContent.split('\n'); line[9] = items[1]; // variabilny symbol line[10] = items[2]; // konstantny symbol line[11] = items[3]; // specificky symbol items = columns[5].textContent.split('\n'); line[12] = items[2]; // ciastka items = columns[6].textContent.split('\n'); line[13] = items[1]; // poplatok line[14] = items[2]; // zmena line[15] = items[3]; // spr8va for (var k = 0; k < line.length; k++) { line[k] = trim(line[k]); } txt += line.join(";") + "<br>\n"; } document.open() document.writeln(txt + "<br>"); document.close(); }, true);
Tiskni
Sdílej: