pátek 7. července 2023

Můj milý deníčku 2008-9

Nikdy by mě nenapadlo začít si vést památník či deníček, jako to dělaly některé spolužačky z obecné školy, ale článek Ondřeje Neffa  mi připomněl, že náš život je zaznamenáván v počítačích ať chceme či ne. Nemyslím jen nudné soubory s příponou .log, kam si běžící systémové procesy zapisují své úspěchy a chyby, ale třeba Neffův projekt Neviditelného psa. Ten lze taky považovat za deníček, v jehož archivu se dá dohledat ke kterémukoli dni počínaje rokem 1996, jak se jmenoval a co vyváděl jeho tehdejší pes, co jinak se ještě onoho dne ve světě událo, jaký trend zrovna frčel a podobné pamětihodnosti. Takže pokud lze sociální sítě považovat za druh deníčku, já si jeden takový vedu na Twitteru, a na rozdíl od spolužaček do něj přispívám od roku 2008 každodenně.

Twitter velice neochotně zobrazuje starší příspěvky, zvlášť pokud nejsme jejich autory, a kdo ví, jak to s ním dopadne. Takže si připomínám události z let 2008 a 2009 pro jistotu pomocí (klikatelných) screenshotů.

Kids are kidnapped every now and then but never heard of goatnapping mothers-in-law.









První pokus o slovní hříčku v angličtině. Česky se tehdy na Twitteru ještě moc nemluvilo.

Patrick Zandl @tangero: Co dělat s napájecím kabelem od MacBooku, který se škvaří a smrdí, když je zapojený? Nový stojí dva litry a koncovku MacSafe nerozeberu :(

@tangero  Švýcaři chladili LHC tekutým heliem a taky se jim to seškvařilo.

Moje první twitrová konverzace mi připomněla hype ohledně švýcarského urychlovače LHC (Large Hadron Collider) spuštěného do provozu 10. září 2008.
Vzpomínám si, že Novinkami tehdy hýbaly obavy, že jeho 13 TeV energie by mohla vést k odštěpení tzv. božské částice (Higgsova bosonu) a vzniku černé díry, která by pohltila Zemi i s okolním vesmírem. O pár let později jsem viděl epizodu Simpsonových, kde takovou malou černou dírku Homer krmil odpadky, které se mu nechtělo odnášet do popelnice.

Už devátý den po spuštění došlo k havárii na elektroinstalaci, která způsobila vypaření šesti tun tekutého hélia. Rapidní změna skupenství poškodila supervodivé magnety urychlovače a na dva měsíce ho vyřadila z provozu.


Než kartě lámat roh, uděláš líp nůžkama přestřihnout riskantní chip.










Reakce na obavy z nově zaváděných bezkontaktních platebních karet a jejich možného zneužívání.
A zároveň můj první veršovaný twít. Tenkrát se ještě na českém Twitteru nikdo s rýmováním neobtěžoval a mně to připadalo jako dobré odlišení od ostatních a zároveň reklama na můj nedávno spuštěný veršovací slovník.

Před mýma očima hvězdičky rejdí,děcka si zas hrály s nářadím v trávě. Největší sranda je nastražit hrábě,a pak se za rohem hihňají,šmejdi.
Tady je vidět, jak tehdejší limit 140 znaků občas nutil znásilňovat gramatická i typografická pravidla (vynechávat mezery po větné čárce).

Proklínám měniče letního času. Vstávejte sami, či táhněte k ďasu.








Ano, jsem sova, a to se nezměnilo.

Za pád do železných tenat  prasosmlouvy z Lisabonu  poslance i celý senát  hnal bych bičem na sto honů.












Naši zastupitelé ukrojili další kolečko ze salámu ćeské suverenity.
Závazek zveršování svých twítů byl pro mne jakousi brzdou chráníci nebohé sledující před nadměrným chrlením mých pocitů.

Místo na travnatý pažit na meeting se zvolna šinu. Pod tribunou budem smažit svatodušní vaječinu.












Házení syrových vajec po předsedovi ČSSD bylo na jejich mítinzích v roce 2009 oblíbenou taškařicí.

@adent  Řešení mne napadlo: pákistánské letadlo!










To se tenkrát etymologicky hloubalo nad původem příslovce (či citoslovce?) paf.
Docela mě překvapuje, že tado zkrácená adresa na tehdy populárním bit.ly ještě po čtrnácti letech funguje a vede na wiki stránku Pakistan Air Force.
Zkracovač bit.ly později přešel na doménu bitly.com a ostatní URL komprimované tímto projektem už nebyly na novou doménu zmigrovány, takže jsou dnes mrtvé.

@cermak  Zřejmě byla podnapilá. Není škoda pětikila? http://jdem.cz/bmjz2 #paroubek










Také tento zkracovač URL je dodnes funkční a pamatuje si odkaz na článek o zlevnění obrázkové knihy o Jiřím Paroubkovi na 500 Kč. Původní twít Miloše Čermáka už mi Twitter neukáže, ale matně si vzpomínám, že mu Senta slíbila koupit ke knize o vagíně ještě obdobnou publikaci o penisu.

Sotva jsme se odchmuřili po pohřebu Waldy, je tu vlna nenásilí. Nabarvěme faldy!











Koncem května 2009 zemřel Waldemar Matuška a necelý měsíc později se v Praze konal pochod lidiček od pasu nahoru oblečených pouze do pestrých barev na holém těle.
Už si nevzpomínám, proti jakému násilí demonstrovali, možná nějaká předzvěst Prague Pride či ukrajinského hnutí Femen.
Taky zkracovač tinyurl.com je dosud funkční, ale odkazovanou stránku už kdosi smazal. Škoda.

Co tady vubec delam? A co vsechno myslim tim "tady"?

Jenom ten, pro něhož práce je lopota, pokládá otázky po smyslu života.











@petrkou (~bský) si tenkrát ještě říkal podle své redakční zkratky @akabecko a občas si zafilosofoval.

Náhodou poslouchám 20 let starou scénku KajzraLábuse zkoušení ve škole r. 2010 na téma Listopad '89. Až děsivě realistické a zcela nevtipné.

@pixycz  Kaiserová zahýká: Osvoboďte Fojtíka!







Mně ta scénka i po letech stále připadá vtipná a neděsí mne. Možná proto, že jsem v dějáku taky nikdy neexceloval.

Nekoukej jim pod čepice. Raději se, vládo, jukni  kandidátům v politice, co to ukrývají v sukni.










Odkaz na závazek zvýšení zastoupení žen v politice. Koukat se dnes političkám pod sukně se moc nenosí. Nevím, zda je to dobře nebo špatně.

Ukrást lžíci v restauraci, to se dneska nevyplácí.  Vem pár bratranců a švagrů, do sběru dej lžíci bagru!











Doba pokročila, bagry už se na Opavsku dnes nekradou. Region razovity.

#Twitter vzkvétá, roste, sílí, až dnes pod tou tíhou kles. Admini se omluvili: může za to DoS.










Zkracovač s vysvětlením již nefunguje, ale je to připomínka, že už v roce 2009 občas nebýval Twitter dostupný 24/7.

Les Paulovi už je líp, and all guitars gently weep..








Odkaz už neexistuje, oznamoval úmrtí  Les Paula, hudebníka a tvůrce elektrické kytary. Té hudbě, kterou nejraději poslouchám, by bez ní hodně chybělo.

V názorech na televizi by se asi dobře shodli  náš divák i divák cizí: jeptišky se málo modlí.











Anotace odkazovaného článku: Veřejnoprávní televize nemá právo kritizovat vládu, tvrdí Berlusconi. Italské jeptišky se mezitím modlí za kvalitnější pořady.
U nás se za televizi nejspíš nemodlí nikdo, a podle toho to pak v ČT vypadá.

Svobodu krást před pár lety, na to byly nutné tanky.  Dneska sami ohnem hřbety, střílíme si vlastní branky.










Připomínka srpnového výročí. Platilo dvacet let po sametu a teď v roce 2023 dvojnásob.

Tak už vyschnul eurovod  do feministických center.  Byl to zajímavý job,  zkoumat ženám jejich gender.












Dodnes žhavé téma: množství prostředků přitékající neziskovým organizacím zkoumajícím orgány a gender.

Když balím ženu používám její fantazii, když programuji tak svoji. Jde o to, používat správné API :-)

Dobrá finta na dámy  je, že prachy do ní sypu.  Když však balím  programy,  používám API Zipu.













Nerdovské vtipy budily smích jen v úzkém kruhu zasvěcenců.

Právě jsem se dozvěděl, že globálně se chladí.  Vydechuji CO2 a metan pouštím zádí.










Už ani nevím, zda se v roce 2023 zrovna globálně ochlazuje nebo globálně otepluje, ale ať tak nebo tak, je prý to špatně. Globálně.

Pokud jsi závislý na psaní twítů,  za 14 tisíců poskytne ti tu  odborná léčebna  sezení potřebná












Tak už v roce 2009 vznikla léčebna závislostí  na videohrách, Facebooku a Twitteru. Škoda, že terapie stojí  $14000, na to spousta lidí nemá.

ČSA se zadlužily, může za to Jarda Tvrdík, který napíchnul jim žíly. A co se mu stane? Prdík.










Připomínka žalostného stavu Českých aerolinií po tříletém působení Jaroslava Tvrdíka ve funkci ředitele.

V Boleslavi dnes se slaví vinou volů v sněmovně,  již, zvednouce ocas kraví, vypustili šrothovné.











Vzpomínka na socialistický nápad přispívat 30 kKč při nákupu nového auta.

Hospodářská situace už mi leze na nervy.  Dluhy rostou, málo práce, zítra končí rezervy.









Změnila se vyhláška, podle které u nových automobilů postačí souprava na nouzovou opravu pneumatiky a není nutné vozit rezervu.


Neshledal jsem po přečtení Janotova balíčku  ani tolik překvapení, jako v Kinder vajíčku.











Úsporné balíčky byly vděčným tématem i v roce 2009.  Všelijakých balíčků  už jsem  od  polistopadových vlád zažil  více než  za celé dětství pod vánočními stromečky.

V poušti se mu dobře vládne - spousta ropy, konkubín... Stanovat však není snadné, když je člověk beduín.











Připomínka, jak Kaddáfí při návštěvě New Yorku marně hledal kemping.
Spousta dnešních Francouzů a Italů by nejspíš uvítala, kdyby mohl v Libyi stále ještě stanovat.

Při papežské hospitaci těžký život celebrity,  lepší zalézt do ulity. Všude samej Papa Ratzi. #PopeCR










Připomínka zářiové návštěvy papeže Ratzingera v České republice. Byly toho tenkrát plné noviny i novináři.

Naše vlast jak lehká žena  čeká, umyta,  až jí bude omezena  suverenita.  #kryl  #lisabon













Parafráze Krylova textu stále mrazivě aktuální.


Zombie z hrobu vybraná vylézá na Vysočině. Strana Přátel Zemana nenechá ho zetlít v hlíně.








A skutečně, nezetlel.


#genderboj transformovan na #svarak http://twtvite.com/suam9s Kdo mate chut, tak tam do diskuse pridejte navrhy na misto, RSVP...

Ad #genderboj  @johanka   @sylvaf   @satai  Nápad dobrý, ale musí tam být konzervativní žena, jinak jsme v pytli. Co @betulie?


První výskyt hashtagu #genderboj a reakce na svolání Twisrazu v říjnu 2009, kde by se řešila genderová problematika.
Nevím, zda se sraz nakonec uskutečnil, ale začal jsem pak tento jejich hashtag používat k označování twítů zabývajících se vztahy mezi pohlavími. Aniž bych tyto vztahy nějak vyřešil či obohatil, samozřejmě:#genderboj je akce hochů?  Pořadatel by tam měl  na vyváženost dbát trochu,  pozvat taky gendergerl.













Evropa je peklu blíže,  musí sundat ze zdi kříže,  neboť podle paní Lautsi  vedou ku diskriminaci












Spousta nově přišedších italských mladíků by s tím i dnes nepochybně souhlasila.


Twitteristé občas tropí  divné kroky misantropí.  Blokovat je nový trend,  když vás trápí par@adent












To zase @adent alias Misantrop vyzýval k blokování všech parazitů komentujících jeho příspěvky, aby ho těmi mentions nevyrušovali.
Ostatně činí tak dodnes. Já se tím naštěstí nemusím zabývat, protože nejsem tak aktivní a populární, občasné nežádoucí reakce mi stačí očima přelétnout a ignorovat. Takže nikoho neblokuji.













Připomínka, jak chtěli presidenta zavřít do blázince kvůli jeho zdráhavému přístupu k podpisu Lisabonské smlouvy.














Příběh jako z akčního filmu: manželka s pistolí v ruce osvobodila svého muže při vězeňském transportu.


V duši klid se rozhostí,  Evropan si ruce mne:  Špidla prý má znalosti  mimořádně významné!













Vladimír Šidla vysvětloval, proč si zaslouží  doživotní rentu  za své komisaření v Bruseli.

Kdepak jména na nástěnce,  estébáci chtějí klid!  Databázi Standy Pence  rychle stihli odstavit













Vzpoínám si, že díky databázi pana Pence jsem mohl zjistit jméno spolupracovníka StB, který na mne byl v osmdesátých letech nasazen.
Kdybych si chtěl počíst, co o mně tenkrát nahlásil, musel bych ale dojet s jednacím číslem do archivu na krajskou správu SNB v Ostravě, tak jsem se  na to vykašlal.

Lepím známku na obálku,  snad doje už v pondělí,  vždyť tak hezkou generálku  ještě v Poště neměli












Koncem roku 2009 byla do čela České pošty jmenována Tvrdíkova spolupracovnice z ČSA Marcela Hrdá, v podstatě profesionální ředitelka jakýchkoli podniků. V České poště vydržela jen rok a čtvrt.




pátek 6. ledna 2023

Tweety a tooty jako plaintext

Twitter umožňuje stažení dat, které o nás nashromáždil, stačí požádat na twitter.com/settings/account a počkat si 24 hodin. Po rozbalení stažené zálohy ji můžeme zkoumat internetovým prohlížečem v souboru "Your archive.html". To mi ale moc nevyhovovalo, protože archiv tweetů je rozdělen na sloupce Tweets, Replies, Retweets a hlavně proto, že je při scrolování dotahuje dynamicky javascriptem, takže v prohlížeči pořádně nefunguje vyhledávání pomocí Ctrl-F. Tim Hutton napsal script parser.py, který vylepšuje několik nedostatků, ale problém prohledávání všech twítů najednou neřeší.

Vyrobil jsem si tedy script, který převádí twíty z formátu objektů JSON v souboru "data/tweets.js" na prostý text, nahradí zkrácené internetové adresy uváděné v textu za jejich plné, funkční verze a chronologicky seřadí vlastní twíty včetně těch odpovědních. Nelze bohužel zobrazovat celé konverzace, protože cizí twíty v archivu nejsou. Textová podoba archivu může vypadat nějak takto:

--- 2015-06-29 (Mon) 17:51 [4419] https://twitter.com/vitsoft/status/615548191421939712
Manželka neječí. Je prý to její normální hlas a mne zmátlo, že první měsíce po svatbě jen šeptala. 
#genderboj

--- 2015-06-30 (Tue) 10:56 [4420] https://twitter.com/vitsoft/status/615806000742797313
RT @selner84: Tsipras: "Zdravíme Českou republiku." https://pbs.twimg.com/media/CIu4mRiUsAARtdf.jpg

--- 2015-06-30 (Tue) 16:07 [4421] https://twitter.com/vitsoft/status/615884292237971457
Ale chlapci, vždyť my už ten Peroutkův článek hledáme sedmý rok! A to už, nezlobte se, 
to už přestává být vtipné. #Cimrman

--- 2015-07-01 (Wed) 08:59 [4422] https://twitter.com/vitsoft/status/616139003679612928
               in reply to https://twitter.com/mppoky/status/615983067157647360
@mppoky Výhodou vhodně zvolených nicků je, že pokud jim chceme něco sdělit, 
netřeba to psát, stačí mention. @lehni_kua

Chcete-li můj script použít, je potřeba mít na počítači instalován PHP a následující kód uložit pomocí schránky do souboru nazvaného např. "tweet2text.php". Před spuštěním v příkazovém okně pomocí "\cesta\k\php.exe" tweet2text.php je třeba upravit parametry v jeho záhlaví, především adresář, ve kterém je rozbalen vstupní soubor, a název výstupního textového souboru. Syntaxe PHP vyžaduje, aby zpětná lomítka \ byla v cestě k souborům zdvojena.
Parametr $OutEncoding="UTF-16//IGNORE" je vhodný k prohlížení výstupního textu Notepadem nebo PSPadem, aby se správně zobrazovala asijská písma a emoji. Lze ovšem nastavit i osmibitové ANSI kodování "CP1250". Přidání //IGNORE přikazuje ignorovat (vynechávat) chybně zakódované znaky z textu twítu. Na Linuxu by mělo fungovat $OutEncoding="UTF-8".

<?php  /* Script for conversion of your tweets from input file "tweets.js" to a plain-text output file.
Download and unzip the archive of your data from https://twitter.com/settings/account
Edit the following parameters in this script and execute it with PHP interpreter.        */ 

$System="https://twitter.com/";                       // URL of the server. 
$Account="vitsoft";                                   // Screen_name of the account owner. 
$InpFile="D:\\DAT\\BACKUP\\twitter\\data\\tweets.js"; // JSON-formated archive of tweets in UTF-8 encoding.
$OutFile="D:\\DAT\\BACKUP\\twitter\\tweets.txt";      // Plain-text output file in $OutEncoding.
$OutEncoding="UTF-16//IGNORE";                        // Encoding wanted in $OutFile (UTF-16 for MS Notepad).
$DateFormat="Y-m-d (D) H:i";

if (!file_exists($InpFile)) die(PHP_EOL."Input file \"$InpFile\" was not found.");
if (!$OutHandle=fopen($OutFile,"w")) die(PHP_EOL."Cannot write to the output file \"$OutFile\".");
echo PHP_EOL."Parsing input file \"$InpFile\" ...";
$FileHeader="window.YTD.tweets.part0 = "; // This header needs to be removed from "tweets.js".  
$InpArray=json_decode(substr(file_get_contents($InpFile),strlen($FileHeader)),true);                 
if (json_last_error()!=JSON_ERROR_NONE) die(PHP_EOL."Last JSON-error in \"tweets.js\": ".json_last_error_msg());
if (!$OutHandle=fopen($OutFile,"w")) die(PHP_EOL."Cannot write to the output file \"$OutFile\".");
fwrite($OutHandle,iconv("UTF-8",$OutEncoding,
"--- Plain-text tweets converted from \"$InpFile\" ".date($DateFormat).PHP_EOL));
$OutArray=array(); // Convert relevant data from $InpArray to $OutArray.
foreach ($InpArray as $TtNr => $Tweet)
{$OutArray[$TtNr]['Date']=date($DateFormat,strtotime($Tweet['tweet']['created_at']));
 $OutArray[$TtNr]['TtId']=$Tweet['tweet']['id_str'];
 if (array_key_exists('in_reply_to_status_id_str',$Tweet['tweet'])) // If $Tweet is a reply to another tweet.  
  {$OutArray[$TtNr]['ReplyToTtId']=$Tweet['tweet']['in_reply_to_status_id_str'];
   if (array_key_exists('in_reply_to_screen_name',$Tweet['tweet']))  
      $OutArray[$TtNr]['ReplyToName']=$Tweet['tweet']['in_reply_to_screen_name'];
   else $OutArray[$TtNr]['ReplyToName']=$Account; // In case of reply to deleted tweet, renamed account etc.  
  } $TweetText=$Tweet['tweet']['full_text']; // Replace displayed URL in $TweetText with the real expanded URL.
 if (array_key_exists('urls',$Tweet['tweet']['entities']))  
    foreach ($Tweet['tweet']['entities']['urls'] as $UA) 
      $TweetText=str_replace($UA['url'],$UA['expanded_url'],$TweetText);
 if (array_key_exists('media',$Tweet['tweet']['entities'])) 
    foreach ($Tweet['tweet']['entities']['media'] as $MA) 
      $TweetText=str_replace($MA['url'],$MA['media_url_https'],$TweetText);
 $OutArray[$TtNr]['Txt']=$TweetText; 
} // Important information from $InpArray has been moved to $OutArray.
function ByDate($a,$b) // Callback function for chronological sort of $OutArray. 
{if ($a['Date'] == $b['Date']) return 0; return ($a['Date'] < $b['Date'])?-1:1;} 
echo PHP_EOL."Sorting tweets by date ..."; usort($OutArray,"ByDate");
echo PHP_EOL."Writing output file \"$OutFile\" ...";
foreach ($OutArray as $TtNr => $Tweet) // Convertion of $OutArray to a plain text.
{$PlainTweet=PHP_EOL."--- ".$Tweet['Date']." [".$TtNr."] $System$Account/status/".$Tweet['TtId'];
if (array_key_exists('ReplyToTtId',$Tweet)) 
  $PlainTweet.=PHP_EOL."               in reply to $System".$Tweet['ReplyToName']."/status/".$Tweet['ReplyToTtId'];
$PlainTweet.=PHP_EOL.$Tweet['Txt'].PHP_EOL; 
fwrite($OutHandle,iconv("UTF-8",$OutEncoding,$PlainTweet));
} fclose($OutHandle); echo PHP_EOL."Twitter archive was converted to the output file in $OutEncoding encoding.";
?>

Podobný skript bude fungovat i na mastodonový archiv tootů, o který lze požádat na adrese
https://your-mastodon-system/settings/export a po rozbalení jej opět v JSON podobě nalezneme v souboru "outbox.json". Místo your-mastodon-system je samozřejmě třeba dosadit doménu serveru s naším účtem, např. mastodonczech.cz, cztwitter.cz apod.

<?php /* Script for conversion of your toots from input file "outbox.json" to a plain-text output file.
Download and unzip the archive of your Mastodon data from your-mastodon-system/settings/export.
Edit the following parameters in this script and execute it with PHP interpreter.        */

$System="https://mastodonczech.cz/system/";             // URL of path to the attached media files. 
$InpFile="D:\\DAT\\BACKUP\\mastodonczech\\outbox.json"; // JSON-formated archive of toots in UTF-8 encoding.
$OutFile="D:\\DAT\\BACKUP\\mastodonczech\\mastodonarchive.txt";  // Plain-text output file in $OutEncoding.
$OutEncoding="UTF-16//IGNORE";                          // Encoding wanted in $OutFile (UTF-16 for MS Notepad).
$DateFormat="Y-m-d (D) H:i";

if (!file_exists($InpFile)) die(PHP_EOL."Input file \"$InpFile\" was not found.");
echo PHP_EOL."Parsing input file \"$InpFile\" ...";
$InpArray=json_decode(file_get_contents($InpFile),true);             
if (json_last_error()<>JSON_ERROR_NONE) die(PHP_EOL."Last JSON-error in \"$InpFile\": ".json_last_error_msg());
if (!$OutHandle=fopen($OutFile,"w")) die(PHP_EOL."Cannot write to the output file \"$OutFile\".");
fwrite($OutHandle,iconv("UTF-8",$OutEncoding,
"--- Plain-text Mastodon toots converted from \"$InpFile\" ".date($DateFormat).PHP_EOL));
$OutArray=array(); // Convert relevant data from $InpArray to $OutArray.
foreach ($InpArray['orderedItems'] as $TtNr => $Toot)
{$Id=$Published=$InReplyTo=$Boosted=$Content="";$Attachments=array();
 if (is_array($Toot['object']))
 {$Id=$Toot['object']['id'];
  $Content=$Toot['object']['content'];
  $Published=$Toot['object']['published'];
  $InReplyTo=$Toot['object']['inReplyTo'];
  if (@is_array($Toot['object']['attachment'])) $Attachments=$Toot['object']['attachment'];
} else { $Id=$Toot['id'];$Boosted=$Toot['object'];$Published=$Toot['published'];}
$OutArray[$TtNr]['Date']=date($DateFormat,strtotime($Published));
$OutArray[$TtNr]['Id']=$Id;
if ($InReplyTo) $OutArray[$TtNr]['InReplyTo']=$InReplyTo;
if ($Boosted) $OutArray[$TtNr]['Boosted']=$Boosted;
if (count($Attachments)) $OutArray[$TtNr]['Attachments']=$Attachments;
$OutArray[$TtNr]['Txt']=str_replace(array('<p>','</p>','<br />'),array('',PHP_EOL,PHP_EOL),strip_tags($Content,'<p><br>')); 
} // Important information from $InpArray has been moved to $OutArray.
function ByDate($a,$b)  // Callback function for chronological sort of $OutArray. 
{if ($a['Date'] == $b['Date']) return 0; return ($a['Date'] < $b['Date'])?-1:1;} 
echo PHP_EOL."Sorting toots by date ..."; usort($OutArray,"ByDate");
echo PHP_EOL."Writing output file \"$OutFile\" ...";
foreach ($OutArray as $TtNr => $Toot) // Conversion of $OutArray to a plain text.
{$PlainToot=PHP_EOL."--- ".$Toot['Date']." [".$TtNr."] ".$Toot['Id'];
if (array_key_exists('InReplyTo',$Toot)) 
  $PlainToot.=PHP_EOL."               in reply to ".$Toot['InReplyTo'];
if (array_key_exists('Boosted',  $Toot)) 
  $PlainToot.=PHP_EOL."               boosted  ".$Toot['Boosted'];
if (array_key_exists('Attachments',$Toot))  
  foreach ($Toot['Attachments'] as $Attachment) 
    $PlainToot.=PHP_EOL."              attached ".$Attachment['mediaType']." ".
                $System.$Attachment['url']." ".$Attachment['name'];
if (array_key_exists('Txt',$Toot)) 
  $PlainToot.=PHP_EOL.$Toot['Txt'];    
fwrite($OutHandle,iconv("UTF-8",$OutEncoding,$PlainToot));
} fclose($OutHandle); echo PHP_EOL."Mastodon archive was converted to the output file in $OutEncoding encoding.";
?>