{"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\/pt\/blog\/administrirovanie\/novyj-analog-punto-switcher-dlya-linux-xswitcher","title":{"rendered":"Novo equivalente do Punto Switcher para Linux: xswitcher","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>O fim do suporte ao xneur trouxe-me certos sofrimentos nos \u00faltimos seis meses. <i>(com a chegada do OpenSUSE 15.1 nos meus desktops: com o xneur ativado, as janelas perdem o foco e piscam divertidamente em sincronia com a digita\u00e7\u00e3o do teclado)<\/i>.<\/p>\n<p>\u00abAh, droga, de novo comecei a digitar no layout errado\u00bb \u2014 isso acontece com uma frequ\u00eancia absurda no meu trabalho. E n\u00e3o adiciona nada de positivo.<\/p>\n<p><img decoding=\"async\" alt=\"Novo equivalente do Punto Switcher para 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 \/>\nAo mesmo tempo, eu (como engenheiro de design) consigo articular claramente o que quero. E eu queria (inicialmente do Punto Switcher e depois, gra\u00e7as ao Windows Vista, finalmente migrando para Linux, do xneur) exatamente uma coisa. Percebendo que na tela havia uma confus\u00e3o devido ao layout errado (isso geralmente acontece no final da digita\u00e7\u00e3o de uma nova palavra), dar um soco no 'Pause\/Break'. E receber o que eu digitei.<\/p>\n<p>Atualmente, o produto tem uma rela\u00e7\u00e3o funcionalidade\/complexidade \u00f3tima (do meu ponto de vista). \u00c9 hora de compartilhar.<\/p>\n<h2>TL.DR<\/h2>\n<p>\nA seguir vir\u00e3o v\u00e1rias particularidades t\u00e9cnicas, ent\u00e3o primeiro \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ds-voix\/VX-PBX\/blob\/master\/x%20switcher\/bin\/xswitcher\">link \"para experimentar\"<\/a><\/noindex> para os impacientes.<\/p>\n<p>Atualmente, o seguinte comportamento est\u00e1 codificado:<\/p>\n<ul>\n<li>\u00abPause\/Break\u00bb: apaga (Backspace) a \u00faltima palavra, alterna o layout na janela ativa (entre 0 e 1) e digita novamente.<\/li>\n<li>\u00abCtrl esquerdo sem nada\u00bb: alterna o layout na janela ativa (entre 0 e 1).<\/li>\n<li>\u00abShift esquerdo sem nada\u00bb: ativa o layout n\u00ba 0 na janela ativa.<\/li>\n<li>\u00abShift direito sem nada\u00bb: ativa o layout n\u00ba 1 na janela ativa.<\/li>\n<\/ul>\n<p>\nA partir deste momento, planejo customizar o comportamento. Sem feedback \u2014 n\u00e3o \u00e9 interessante (j\u00e1 estou satisfeito). Acredito que no Habra haver\u00e1 uma porcentagem suficiente de audi\u00eancia com problemas semelhantes.<\/p>\n<p><b>N.B.<\/b> Como a vers\u00e3o atual do keylogger se conecta a \"\/dev\/input\/\", o xswitcher deve ser executado com privil\u00e9gios de root:<\/p>\n<pre><code class=\"bash\">chown root:root xswitcher\nchmod +xs xswitcher<\/code><\/pre>\n<p>\n<b>Observe:<\/b> o propriet\u00e1rio do arquivo com suid deve ser root, pois quem \u00e9 o propriet\u00e1rio \u2014 ter\u00e1 o suid ativado ao ser executado.<\/p>\n<p>Paranoicos (eu n\u00e3o sou exce\u00e7\u00e3o) podem clonar de <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ds-voix\/VX-PBX\">GIT<\/a><\/noindex> e compilar localmente. Aproximadamente assim:<\/p>\n<pre><code class=\"bash\">go get \"github.com\/micmonay\/keybd_event\"\ngo get \"github.com\/gvalkov\/golang-evdev\"\n\n### Headers do X11 para OpenSUSE\/base 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>\nAdicionar autostart a gosto (dependendo do DE).<\/p>\n<p>Funciona, \"n\u00e3o pede muito\" (\u224830 segundos de CPU por dia, \u224812 MB em RSS).<\/p>\n<h2>Detalhes<\/h2>\n<p>\nAgora \u2014 detalhes.<\/p>\n<p><i>Todo o reposit\u00f3rio foi inicialmente dedicado ao meu projeto pessoal, e estou com pregui\u00e7a de criar outro. Portanto, tudo est\u00e1 misturado (apenas em pastas) e coberto pela AGPL (\u2018patente ao contr\u00e1rio\u2019).<\/i><\/p>\n<p>O c\u00f3digo do xswitcher foi escrito em golang, com m\u00ednimas inser\u00e7\u00f5es de C. A expectativa \u00e9 que essa abordagem resulte em menos esfor\u00e7o (at\u00e9 agora \u00e9 assim). Mantendo a possibilidade de conectar o que falta via cgo.<\/p>\n<p>Os coment\u00e1rios no texto explicam de onde eu peguei cada coisa e por qu\u00ea. Como o c\u00f3digo do xneur n\u00e3o me \u2018inspirou\u2019, usei como ponto de partida. <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/xintrea\/LoLoSwitcher\">loloswitcher<\/a><\/noindex>.<\/p>\n<p>O uso de \"\/dev\/input\/\" tem seus pr\u00f3s (tudo \u00e9 vis\u00edvel, inclusive a tecla pressionada com repeti\u00e7\u00e3o autom\u00e1tica) e contras. Os contras s\u00e3o:<\/p>\n<ul>\n<li>A repeti\u00e7\u00e3o autom\u00e1tica (eventos com o c\u00f3digo \u201c2\u201d) n\u00e3o se correlaciona com a repeti\u00e7\u00e3o via X.<\/li>\n<li>N\u00e3o \u00e9 poss\u00edvel ver a entrada atrav\u00e9s das interfaces X11 (por exemplo, o VNC funciona assim).<\/li>\n<li>\u00c9 necess\u00e1rio ser root.<\/li>\n<\/ul>\n<p>\nPor outro lado, \u00e9 poss\u00edvel assinar eventos X atrav\u00e9s de \u201cXSelectExtensionEvent()\u201d. \u00c9 poss\u00edvel conferir isso no <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/freedesktop\/xorg-xinput\/blob\/master\/src\/test.c\">c\u00f3digo do xinput.<\/a><\/noindex>. Para Go, n\u00e3o encontrei nada parecido, e a implementa\u00e7\u00e3o preliminar resultou em uma centena de linhas de c\u00f3digo em C. Por enquanto, deixei de lado.<\/p>\n<p>A sa\u00edda \u2018reversa\u2019 foi feita atrav\u00e9s da adi\u00e7\u00e3o de um teclado virtual. Agrade\u00e7o ao autor do keybd_event, mas l\u00e1 a abstra\u00e7\u00e3o \u00e9 muito alta e isso ter\u00e1 que ser refeito. No meu caso, por exemplo, a tecla Win direita seleciona a terceira linha. E a esquerda s\u00f3 transmite de volta.<\/p>\n<h2>Erros conhecidos<\/h2>\n<p><\/p>\n<ul>\n<li>N\u00e3o sei nada sobre a entrada \u2018compositiva\u2019 (exemplo: \u00bd). <i>Atualmente, isso n\u00e3o \u00e9 necess\u00e1rio.<\/i><\/li>\n<li>Estamos reproduzindo incorretamente a tecla Win direita. No meu caso, isso interfere na disposi\u00e7\u00e3o dos acentos.<\/li>\n<li>N\u00e3o h\u00e1 uma an\u00e1lise clara da entrada. Em vez disso, h\u00e1 v\u00e1rias fun\u00e7\u00f5es: Compare(), CtrlSequence(), RepeatSequence(), SpaceSequence(). <i>Obrigado <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/nsmcan\/\" class=\"user_link\">nsmcan<\/a><\/noindex> pela aten\u00e7\u00e3o: corrigi no c\u00f3digo e aqui.<\/i> H\u00e1 uma certa probabilidade de encontrar bugs durante a troca.<br \/>\n<b>Neste ponto, n\u00e3o sei \u2018como deve ser\u2019 e ficarei feliz com qualquer sugest\u00e3o.<\/b><\/li>\n<li><i>(Oh horror)<\/i> uso concorrente de canais (keyboardEvents, miceEvents).<\/li>\n<\/ul>\n<p><\/p>\n<h2>Conclus\u00e3o<\/h2>\n<p>\nO c\u00f3digo \u00e9 um simples procedimental. <i>E \u00e9 t\u00e3o burro quanto eu.<\/i> Portanto, me consolo na esperan\u00e7a de que qualquer t\u00e9cnico competente consiga completar o desejado. E que este produto, por isso, n\u00e3o desapare\u00e7a sem suporte como a maioria dos projetos just-for-fun.<\/p>\n<p>Boa sorte!<br \/>\n<br \/>Fonte: <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.3 - 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\/pt\/blog\/administrirovanie\/novyj-analog-punto-switcher-dlya-linux-xswitcher\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"pt_PT\" \/>\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\/pt\/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\udd47Novo an\u00e1logo do Punto Switcher para linux: xswitcher | ProHoster","description":"A interrup\u00e7\u00e3o do suporte ao xneur causou-me certos sofrimentos nos \u00faltimos seis meses (com a chegada do OpenSUSE 15.1 nos meus desktops: com o xneur ativado, as janelas perdem foco e piscam de forma divertida com a entrada.","canonical_url":"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/novyj-analog-punto-switcher-dlya-linux-xswitcher","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pt_PT","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\/pt\/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\/pt\/wp-json\/wp\/v2\/posts\/79737","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/comments?post=79737"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/79737\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media\/79738"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media?parent=79737"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/categories?post=79737"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/tags?post=79737"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}