{"id":79737,"date":"2020-04-30T07:41:58","date_gmt":"2020-04-30T05:41:58","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/novyj-analog-punto-switcher-dlya-linux-xswitcher"},"modified":"2020-04-30T07:41:58","modified_gmt":"2020-04-30T05:41:58","slug":"novyj-analog-punto-switcher-dlya-linux-xswitcher","status":"publish","type":"post","link":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/novyj-analog-punto-switcher-dlya-linux-xswitcher","title":{"rendered":"Noua alternativ\u0103 Punto Switcher pentru linux: xswitcher.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>\u00cencetarea suportului pentru xneur mi-a provocat anumite nepl\u0103ceri \u00een ultimele \u0219ase luni <i>(de c\u00e2nd a ap\u0103rut OpenSUSE 15.1 pe desktopurile mele: cu xneur activ, feroneriile pierd focusul \u0219i clipe\u0219te amuzant \u00een ritmul introducerii de pe tastatur\u0103)<\/i>.<\/p>\n<p>\u201eAh, naiba, din nou am \u00eenceput s\u0103 scriu cu o alt\u0103 dispozi\u021bie\u201d \u2014 se \u00eent\u00e2mpl\u0103 cu o frecven\u021b\u0103 inacceptabil\u0103 \u00een munca mea. \u0218i nu adaug\u0103 deloc pozitivism.<\/p>\n<p><img decoding=\"async\" alt=\"Noua alternativ\u0103 Punto Switcher pentru linux: xswitcher.\" src=\"\/wp-content\/uploads\/2020\/04\/d296936e3aedb8e94ba4c26522ffe72b.jpeg\" style=\"display:block;margin: 0 auto;\" \/><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\n\u00cen acela\u0219i timp, eu (ca inginer proiectant) pot formula destul de clar ceea ce vreau. \u0218i am vrut (mai \u00eent\u00e2i de la Punto Switcher, iar apoi, mul\u021bumit\u0103 Windows Vista, \u00eentorc\u00e2ndu-m\u0103 complet pe Linux, de la xneur) un singur lucru. Realiz\u00e2nd c\u0103 pe ecran este un amestec de caractere dintr-o alt\u0103 dispozi\u021bie (acest lucru apare de obicei la sf\u00e2r\u0219itul introducerii unui cuv\u00e2nt nou), s\u0103 ap\u0103s pe \u201ePause\/Break\u201d. \u0218i s\u0103 primesc ceea ce am tastat.<\/p>\n<p>\u00cen prezent, produsul are un raport optim (din perspectiva mea) \u00eentre func\u021bionalitate \u0219i complexitate. E timpul s\u0103 \u00eemp\u0103rt\u0103\u0219esc.<\/p>\n<h2>TL.DR<\/h2>\n<p>\nUrmeaz\u0103 diverse detalii tehnice, a\u0219a c\u0103 mai \u00eent\u00e2i \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ds-voix\/VX-PBX\/blob\/master\/x%20switcher\/bin\/xswitcher\">link \u201ede testat\u201d<\/a><\/noindex> pentru cei ner\u0103bd\u0103tori.<\/p>\n<p>\u00cen acest moment, comportamentul urm\u0103tor este hardcodat:<\/p>\n<ul>\n<li>\u201ePause\/Break\u201d: \u0219terge (Backspace) ultimul cuv\u00e2nt, comut\u0103 dispozi\u021bia \u00een fereastra activ\u0103 (\u00eentre 0 \u0219i 1) \u0219i reintroduce \u00eenc\u0103 o dat\u0103.<\/li>\n<li>\u201eCtrl st\u00e2nga f\u0103r\u0103 altceva\u201d: comut\u0103 dispozi\u021bia \u00een fereastra activ\u0103 (\u00eentre 0 \u0219i 1).<\/li>\n<li>\u201eShift st\u00e2nga f\u0103r\u0103 altceva\u201d: activeaz\u0103 \u00een fereastra activ\u0103 dispozi\u021bia nr. 0.<\/li>\n<li>\u201eShift dreapta f\u0103r\u0103 altceva\u201d: activeaz\u0103 \u00een fereastra activ\u0103 dispozi\u021bia nr. 1.<\/li>\n<\/ul>\n<p>\nDe acum \u00eenainte, inten\u021bionez s\u0103 personaliz\u0103m comportamentul. F\u0103r\u0103 feedback \u2014 nu este interesant (m\u0103 mul\u021bume\u0219te deja). Cred c\u0103 pe Habr se va g\u0103si un procent suficient de audien\u021b\u0103 cu probleme similare.<\/p>\n<p><b>N.B.<\/b> Deoarece, \u00een versiunea curent\u0103, keyloggerul este ata\u0219at la \"\/dev\/input\/\", xswitcher trebuie s\u0103 fie lansat cu privilegii de root:<\/p>\n<pre><code class=\"bash\">chown root:root xswitcher\nchmod +xs xswitcher<\/code><\/pre>\n<p>\n<b>Re\u021bine\u021bi:<\/b> proprietarul fi\u0219ierului cu suid trebuie s\u0103 fie root, deoarece cine este proprietar \u2014 acela va deveni suid la lansare.<\/p>\n<p>Paranoicii (eu nu sunt o excep\u021bie) pot clona din <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ds-voix\/VX-PBX\">GIT<\/a><\/noindex> \u0219i compila local. Aproximativ a\u0219a:<\/p>\n<pre><code class=\"bash\">go get \"github.com\/micmonay\/keybd_event\"\ngo get \"github.com\/gvalkov\/golang-evdev\"\n\n### Anteturile X11 pentru OpenSUSE\/pe baz\u0103 de deb\nzypper install libX11-devel libXmu-devel\napt-get install libx11-dev libxmu-dev\n\ncd \"x switcher\/src\/\"\ngo build -o xswitcher -ldflags \"-s -w\" --tags static_all src\/*.go\n<\/code><\/pre>\n<p>\nAutolansa\u021bi conform preferin\u021belor (\u00een func\u021bie de DE).<\/p>\n<p>Func\u021bioneaz\u0103, \u201enu consum\u0103 resurse\u201d (\u224830 secunde CPU pe zi, \u224812 MB \u00een RSS).<\/p>\n<h2>Detalii<\/h2>\n<p>\nAcum \u2014 detaliile.<\/p>\n<p><i>\u00centregul repository a fost dedicat ini\u021bial proiectului meu personal, iar crea altul \u2014 m\u0103 simt prea lene\u0219. A\u0219a c\u0103, totul este amestecat (pur \u0219i simplu pe foldere) \u0219i acoperit de AGPL (\u201ebrevet invers\u201d).<\/i><\/p>\n<p>Codul xswitcher a fost scris \u00een golang, cu c\u00e2teva inser\u021bii de C. Se presupune c\u0103 aceast\u0103 abordare va oferi cele mai mici cheltuieli de munc\u0103 (p\u00e2n\u0103 acum a\u0219a este). Men\u021bin\u00e2nd posibilitatea de a conecta lipsurile prin cgo.<\/p>\n<p>Pe text sunt notate comentarii despre de unde am \u00eemprumutat \u0219i de ce. Deoarece codul xneur nu m-a \u201einspirat\u201d, am folosit ca punct de plecare <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/xintrea\/LoLoSwitcher\">loloswitcher<\/a><\/noindex>.<\/p>\n<p>Utilizarea \"\/dev\/input\/\" are at\u00e2t avantaje (totul este vizibil, inclusiv tasta ap\u0103sat\u0103 cu repetarea automat\u0103), c\u00e2t \u0219i dezavantaje. Dezavantajele sunt urm\u0103toarele:<\/p>\n<ul>\n<li>Repetarea automat\u0103 (evenimente cu codul \u201e2\u201d) nu se coreleaz\u0103 cu repetarea de la X.<\/li>\n<li>Nu se vede introducerea prin interfe\u021bele X11 (de exemplu, VNC func\u021bioneaz\u0103 astfel).<\/li>\n<li>Este nevoie de root.<\/li>\n<\/ul>\n<p>\nPe de alt\u0103 parte, se pot abona la evenimente X prin \u201eXSelectExtensionEvent()\u201d. Poate fi verificat \u00een <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/freedesktop\/xorg-xinput\/blob\/master\/src\/test.c\">codul xinput<\/a><\/noindex>. Pentru go nu am g\u0103sit ceva similar, iar implementarea preliminar\u0103 a dat instantaneu o sut\u0103 de linii de cod C. P\u00e2n\u0103 atunci, am pus-o deoparte.<\/p>\n<p>Ie\u015firea \u201e\u00eenapoi\u201d a fost realizat\u0103 temporar prin conectarea unei tastaturi virtuale. Mul\u021bumesc autorului keybd_event, dar acolo este o abstractizare prea de nivel \u00eenalt \u0219i va trebui s\u0103 o refac. De exemplu, tasta Win dreapta din r\u00e2ndul 3 selecteaz\u0103. \u0218i \u00eenapoi se transmite doar tasta Win st\u00e2nga.<\/p>\n<h2>Erori cunoscute<\/h2>\n<p><\/p>\n<ul>\n<li>Nu \u0219tim nimic despre introducerea \u201ecompozit\u201d (ex. \u00bd). <i>\u00cen acest moment nu este necesar.<\/i><\/li>\n<li>Reproduci gre\u0219it tasta Win dreapt\u0103. \u00cen cazul meu, distruge aranjarea accentelor.<\/li>\n<li>Nu exist\u0103 o analiz\u0103 clar\u0103 a introducerii. \u00cen schimb, sunt c\u00e2teva func\u021bii: Compare(), CtrlSequence(), RepeatSequence(), SpaceSequence(). <i>Mul\u021bumesc <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/nsmcan\/\" class=\"user_link\">nsmcan<\/a><\/noindex> pentru aten\u021bie: am corectat \u00een cod \u0219i aici.<\/i> Cu o probabilitate cert\u0103, se pot \u00eent\u00e2lni bug-uri la \u00eenlocuire.<br \/>\n<b>\u00cen acest loc nu \u0219tiu \u201ecum ar trebui\u201d \u0219i a\u0219 fi bucuros pentru orice sugestie.<\/b><\/li>\n<li><i>(O, groaz\u0103)<\/i> utilizarea concurent\u0103 a canalelor (keyboardEvents, miceEvents).<\/li>\n<\/ul>\n<p><\/p>\n<h2>Concluzie<\/h2>\n<p>\nCodul este un procedural simplu. <i>\u0218i prost ca mine.<\/i> A\u0219a c\u0103, m\u0103 consolez cu speran\u021ba c\u0103 ceea ce \u00eemi doresc poate fi terminat de aproape orice tehnician. \u0218i acest produs, datorit\u0103 acestui lucru, nu va disp\u0103rea f\u0103r\u0103 suport, asemenea majorit\u0103\u021bii celor just-for-fun.<\/p>\n<p>Mult noroc!<br \/>\n<br \/>Sursa: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/495748\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0435\u043a\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 xneur \u0432\u044b\u0437\u0432\u0430\u043b\u043e \u0443 \u043c\u0435\u043d\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0435 \u0441\u0442\u0440\u0430\u0434\u0430\u043d\u0438\u044f \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u043f\u043e\u043b\u0433\u043e\u0434\u0430 (\u0441 \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u0435\u043c OpenSUSE 15.1 \u043d\u0430 \u043c\u043e\u0438\u0445 \u0434\u0435\u0441\u043a\u0442\u043e\u043f\u0430\u0445: \u043f\u0440\u0438 \u0432\u043a\u043b\u044e\u0447\u0451\u043d\u043d\u043e\u043c xneur \u043e\u043a\u043d\u0430 \u0442\u0435\u0440\u044f\u044e\u0442 \u0444\u043e\u043a\u0443\u0441 \u0438 \u0437\u0430\u0431\u0430\u0432\u043d\u043e \u043c\u0435\u0440\u0446\u0430\u044e\u0442 \u0432 \u0442\u0430\u043a\u0442 \u0432\u0432\u043e\u0434\u0430 \u0441 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b). \u00ab\u0410, \u0431\u043b\u0438\u043d, \u043e\u043f\u044f\u0442\u044c \u043d\u0435 \u0432 \u0442\u043e\u0439 \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u043a\u0435 \u043d\u0430\u0447\u0430\u043b \u043d\u0430\u0431\u0438\u0440\u0430\u0442\u044c\u00bb \u2014 \u0432 \u043c\u043e\u0435\u0439 \u0440\u0430\u0431\u043e\u0442\u0435 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u0442\u0441\u044f \u0434\u043e \u043d\u0435\u043f\u0440\u0438\u043b\u0438\u0447\u0438\u044f \u0447\u0430\u0441\u0442\u043e. \u0418 \u043f\u043e\u0437\u0438\u0442\u0438\u0432\u0430 \u043d\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442. \u0412 \u0442\u043e [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":79738,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-79737","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.4 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u0435\u043a\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 xneur \u0432\u044b\u0437\u0432\u0430\u043b\u043e \u0443 \u043c\u0435\u043d\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0435 \u0441\u0442\u0440\u0430\u0434\u0430\u043d\u0438\u044f \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u043f\u043e\u043b\u0433\u043e\u0434\u0430 (\u0441 \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u0435\u043c OpenSUSE 15.1 \u043d\u0430 \u043c\u043e\u0438\u0445 \u0434\u0435\u0441\u043a\u0442\u043e\u043f\u0430\u0445: \u043f\u0440\u0438 \u0432\u043a\u043b\u044e\u0447\u0451\u043d\u043d\u043e\u043c xneur \u043e\u043a\u043d\u0430 \u0442\u0435\u0440\u044f\u044e\u0442 \u0444\u043e\u043a\u0443\u0441 \u0438 \u0437\u0430\u0431\u0430\u0432\u043d\u043e \u043c\u0435\u0440\u0446\u0430\u044e\u0442 \u0432 \u0442\u0430\u043a\u0442 \u0432\u0432\u043e\u0434\u0430 \u0441.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/novyj-analog-punto-switcher-dlya-linux-xswitcher\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"ro_RO\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041d\u043e\u0432\u044b\u0439 \u0430\u043d\u0430\u043b\u043e\u0433 Punto Switcher \u0434\u043b\u044f linux: xswitcher | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0435\u043a\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 xneur \u0432\u044b\u0437\u0432\u0430\u043b\u043e \u0443 \u043c\u0435\u043d\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0435 \u0441\u0442\u0440\u0430\u0434\u0430\u043d\u0438\u044f \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u043f\u043e\u043b\u0433\u043e\u0434\u0430 (\u0441 \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u0435\u043c OpenSUSE 15.1 \u043d\u0430 \u043c\u043e\u0438\u0445 \u0434\u0435\u0441\u043a\u0442\u043e\u043f\u0430\u0445: \u043f\u0440\u0438 \u0432\u043a\u043b\u044e\u0447\u0451\u043d\u043d\u043e\u043c xneur \u043e\u043a\u043d\u0430 \u0442\u0435\u0440\u044f\u044e\u0442 \u0444\u043e\u043a\u0443\u0441 \u0438 \u0437\u0430\u0431\u0430\u0432\u043d\u043e \u043c\u0435\u0440\u0446\u0430\u044e\u0442 \u0432 \u0442\u0430\u043a\u0442 \u0432\u0432\u043e\u0434\u0430 \u0441.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/novyj-analog-punto-switcher-dlya-linux-xswitcher\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-04-30T05:41:58+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-04-30T05:41:58+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Nou analog Punto Switcher pentru linux: xswitcher | ProHoster","description":"\u00cencetarea suportului pentru xneur mi-a cauzat anumite dificult\u0103\u021bi \u00een ultimele \u0219ase luni (cu apari\u021bia OpenSUSE 15.1 pe desktopurile mele: c\u00e2nd xneur este activat, feronizinile \u00ee\u0219i pierd focalizarea \u0219i clipe\u0219te amuzant \u00een sincron cu introducerea).","canonical_url":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/novyj-analog-punto-switcher-dlya-linux-xswitcher","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"ro_RO","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041d\u043e\u0432\u044b\u0439 \u0430\u043d\u0430\u043b\u043e\u0433 Punto Switcher \u0434\u043b\u044f linux: xswitcher | ProHoster","og:description":"\u041f\u0440\u0435\u043a\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 xneur \u0432\u044b\u0437\u0432\u0430\u043b\u043e \u0443 \u043c\u0435\u043d\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0435 \u0441\u0442\u0440\u0430\u0434\u0430\u043d\u0438\u044f \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u043f\u043e\u043b\u0433\u043e\u0434\u0430 (\u0441 \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u0435\u043c OpenSUSE 15.1 \u043d\u0430 \u043c\u043e\u0438\u0445 \u0434\u0435\u0441\u043a\u0442\u043e\u043f\u0430\u0445: \u043f\u0440\u0438 \u0432\u043a\u043b\u044e\u0447\u0451\u043d\u043d\u043e\u043c xneur \u043e\u043a\u043d\u0430 \u0442\u0435\u0440\u044f\u044e\u0442 \u0444\u043e\u043a\u0443\u0441 \u0438 \u0437\u0430\u0431\u0430\u0432\u043d\u043e \u043c\u0435\u0440\u0446\u0430\u044e\u0442 \u0432 \u0442\u0430\u043a\u0442 \u0432\u0432\u043e\u0434\u0430 \u0441.","og:url":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/novyj-analog-punto-switcher-dlya-linux-xswitcher","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-04-30T05:41:58+00:00","article:modified_time":"2020-04-30T05:41:58+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"79737","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 16:32:22","updated":"2022-09-30 15:31:31","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/79737","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/comments?post=79737"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/79737\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media\/79738"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media?parent=79737"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/categories?post=79737"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/tags?post=79737"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}