123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725 |
- <!DOCTYPE html>
- <html>
- <head data-suburl="">
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
- <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
-
- <meta name="author" content="diogo" />
- <meta name="description" content="gnu-social - GNU social is a social communication software used in federated social networks. It is widely supported and has a large userbase. It is already used by the Free Software Foundation." />
- <meta name="keywords" content="go, git, self-hosted, gogs">
-
- <meta name="referrer" content="no-referrer" />
- <meta name="_csrf" content="wotyR1S-V7irw6NjI68cCHvoH_w6MTYwNDc5MjI3MTkyMzY4ODc0MA==" />
- <meta name="_suburl" content="" />
-
-
-
- <meta property="og:url" content="https://notabug.org/diogo/gnu-social" />
- <meta property="og:type" content="object" />
- <meta property="og:title" content="diogo/gnu-social">
- <meta property="og:description" content="GNU social is a social communication software used in federated social networks. It is widely supported and has a large userbase. It is already used by the Free Software Foundation.">
- <meta property="og:image" content="https://notabug.org/avatars/12290" />
-
- <link rel="shortcut icon" href="/img/favicon.png" />
- <script src="/js/jquery-1.11.3.min.js"></script>
- <script src="/js/libs/jquery.are-you-sure.js"></script>
- <link href="/img/icon-48.ico" rel="icon" type="image/x-icon" />
- <link href="/img/icon-60.png" rel="apple-touch-icon">
- <link href="/img/icon-76.png" rel="apple-touch-icon" sizes="76x76">
- <link href="/img/icon-120.png" rel="apple-touch-icon" sizes="120x120">
- <link href="/img/icon-152.png" rel="apple-touch-icon" sizes="152x152">
- <link href="/img/icon-240.png" rel="apple-touch-icon" sizes="240x240">
- <link rel="stylesheet" href="/assets/font-awesome-4.6.3/css/font-awesome.min.css">
- <link rel="stylesheet" href="/assets/octicons-4.3.0/octicons.min.css">
-
-
-
-
- <link rel="stylesheet" href="/css/semantic-2.2.13.min.css">
- <link rel="stylesheet" href="/css/gogs.css?v=6fc9e85aa88133794d3434ea74aa557a">
- <link rel="stylesheet" href="/css/notabug.css">
-
- <script src="/js/semantic-2.2.13.min.js"></script>
- <script src="/js/gogs.js?v=6fc9e85aa88133794d3434ea74aa557a"></script>
- <title>[RFC] Caching streams using Redis - NotABug.org: Free code hosting</title>
- <meta name="theme-color" content="#428bca">
-
- <noscript><style>.nojs-popup:hover > .menu { display: block ; }</style></noscript>
- </head>
- <body>
- <div class="full height">
- <noscript>Please enable JavaScript in your browser!</noscript>
-
- <div id="header-div" class="following bar light">
- <div class="ui container">
- <div class="ui grid">
- <div class="column">
- <div class="ui top secondary menu">
- <a class="item brand" href="/">
- <img class="ui mini image" src="/img/favicon.png">
- </a>
-
- <a class="item" href="/">Home</a>
-
- <a class="item" href="/explore/repos">Explore</a>
-
-
- <a class="notabug-item item" href="/help" rel="noreferrer">Help</a>
- <div class="right menu">
-
- <a class="item" href="/user/sign_up">
- <i class="octicon octicon-person"></i> Register
- </a>
-
- <a class="item" href="/user/login?redirect_to=%2fdiogo%2fgnu-social%2fissues%2f52">
- <i class="octicon octicon-sign-in"></i> Sign In
- </a>
- </div>
-
- </div>
- </div>
- </div>
- </div>
- </div>
-
- <div class="repository view issue pull">
- <div class="header-wrapper">
- <div class="ui container">
- <div class="ui vertically padded grid head">
- <div class="column">
- <div class="ui header">
- <div class="ui huge breadcrumb">
- <i class="mega-octicon octicon-repo"></i>
- <a href="/diogo">diogo</a>
- <div class="divider"> / </div>
- <a href="/diogo/gnu-social">gnu-social</a>
-
-
- </div>
-
- <div class="ui right">
- <div class="ui labeled button" tabindex="0">
- <a class="ui basic button" href="/diogo/gnu-social/action/watch?redirect_to=%2fdiogo%2fgnu-social%2fissues%2f52">
- <i class="icon fa-eye-slash"></i>Watch
- </a>
- <a class="ui basic label" href="/diogo/gnu-social/watchers">
- 9
- </a>
- </div>
- <div class="ui labeled button" tabindex="0">
- <a class="ui basic button" href="/diogo/gnu-social/action/star?redirect_to=%2fdiogo%2fgnu-social%2fissues%2f52">
- <i class="icon fa-star-o"></i>Star
- </a>
- <a class="ui basic label" href="/diogo/gnu-social/stars">
- 22
- </a>
- </div>
-
- <div class="ui labeled button" tabindex="0">
- <a class="ui basic button " href="/repo/fork/25974">
- <i class="octicon octicon-repo-forked"></i>Fork
- </a>
- <a class="ui basic label" href="/diogo/gnu-social/forks">
- 21
- </a>
- </div>
-
- </div>
-
- </div>
- </div>
- </div>
- </div>
- <div class="ui tabs container">
- <div class="ui tabular menu navbar">
-
- <a class=" item" href="/diogo/gnu-social">
- <i class="octicon octicon-file-text"></i> Files
- </a>
-
-
- <a class="active item" href="/diogo/gnu-social/issues">
- <i class="octicon octicon-issue-opened"></i> Issues <span class="ui blue small label">73</span>
- </a>
-
-
- <a class=" item" href="/diogo/gnu-social/pulls">
- <i class="octicon octicon-git-pull-request"></i> Pull Requests <span class="ui blue small label">3</span>
- </a>
-
-
- <a class=" item" href="/diogo/gnu-social/wiki">
- <i class="octicon octicon-book"></i> Wiki
- </a>
-
-
- </div>
- </div>
- <div class="ui tabs divider"></div>
- </div>
- <div class="ui container">
- <div class="navbar">
- <div class="ui compact small menu">
- <a class=" item" href="/diogo/gnu-social/labels">Labels</a>
- <a class=" item" href="/diogo/gnu-social/milestones">Milestones</a>
- </div>
- <div class="ui right">
-
- <a class="ui green button" href="/diogo/gnu-social/issues/new">New Issue</a>
-
- </div>
- </div>
- <div class="ui divider"></div>
-
- <div>
- <div class="ui grid">
-
-
- <div class="sixteen wide column title">
- <div class="ui grid">
- <h1 class="twelve wide column">
- <span class="index">#52</span> <span id="issue-title" class="has-emoji">[RFC] Caching streams using Redis</span>
- <div id="edit-title-input" class="ui input" style="display: none">
- <input value="[RFC] Caching streams using Redis">
- </div>
- </h1>
-
- </div>
-
- <div class="ui green large label"><i class="octicon octicon-issue-opened"></i> Open</div>
-
-
-
- <span class="time-desc">
-
- opened <span class="time-since" title="Tue, 13 Aug 2019 19:15:29 UTC">1 year ago</span> by <a href="/biodantas">biodantas</a>
-
- ·
- 3 comments
- </span>
-
- <div class="ui divider"></div>
- </div>
-
-
- <div class="twelve wide column comment-list">
- <ui class="ui comments">
- <div class="comment">
- <a class="avatar" href="/biodantas">
- <img src="https://seccdn.libravatar.org/avatar/23633838a5487dc30d0d288c26e04dbf">
- </a>
- <div class="content">
- <div class="ui top attached header">
- <span class="text grey"><a href="/biodantas">biodantas</a> commented <a href="#issue-63692"><span class="time-since" title="Tue, 13 Aug 2019 19:15:29 UTC">1 year ago</span></a></span>
- <div class="ui right actions">
-
- </div>
- </div>
- <div class="ui attached segment">
- <div class="render-content markdown has-emoji">
-
- <p>Like Chimo pointed out in an issue in their Redis plugin for GNU social (now integrated), seen <a href="https://github.com/chimo/gs-rediscache/issues/2" rel="nofollow">here</a>
- it should be possible to cache notice streams. To this effect, it's necessary to</p>
- <blockquote>
- <p>figure out which <code>:user/all</code> streams to invalidate when new notices are added/deleted. A good starting point might be to get every local user who is subscribed to the author of the inserted/deleted notice, and invalidate their <code>:user/all</code> streams.</p>
- </blockquote>
- <p>I don't have much experience with this type of thing and would appreciate some insight on the best way to do it.</p>
-
- </div>
- <div class="raw-content hide">Like Chimo pointed out in an issue in their Redis plugin for GNU social (now integrated), seen [here](https://github.com/chimo/gs-rediscache/issues/2)
- it should be possible to cache notice streams. To this effect, it's necessary to
- > figure out which `:user/all` streams to invalidate when new notices are added/deleted. A good starting point might be to get every local user who is subscribed to the author of the inserted/deleted notice, and invalidate their `:user/all` streams.
- I don't have much experience with this type of thing and would appreciate some insight on the best way to do it.</div>
- <div class="edit-content-zone hide" data-write="issue-63692-write" data-preview="issue-63692-preview" data-update-url="/diogo/gnu-social/issues/52/content" data-context="/diogo/gnu-social"></div>
- </div>
-
- </div>
- </div>
-
-
-
-
- <div class="comment" id="issuecomment-15436">
- <a class="avatar" href="/diogo">
- <img src="/avatars/12290">
- </a>
- <div class="content">
- <div class="ui top attached header">
- <span class="text grey"><a href="/diogo">Diogo Cordeiro</a> commented <a href="#issuecomment-15436"><span class="time-since" title="Thu, 15 Aug 2019 13:58:56 UTC">1 year ago</span></a></span>
- <div class="ui right actions">
-
- <div class="item tag">
-
- Owner
-
- </div>
-
-
- </div>
- </div>
- <div class="ui attached segment">
- <div class="render-content markdown has-emoji">
-
- <p>I'm not sure about why just local users... But, if only local users are relevant, there are events like onNoticeDistribute that you can catch for handling the proposed logic...</p>
-
- </div>
- <div class="raw-content hide">I'm not sure about why just local users... But, if only local users are relevant, there are events like onNoticeDistribute that you can catch for handling the proposed logic...</div>
- <div class="edit-content-zone hide" data-write="issuecomment-15436-write" data-preview="issuecomment-15436-preview" data-update-url="/diogo/gnu-social/comments/15436" data-context="/diogo/gnu-social"></div>
- </div>
-
- </div>
- </div>
-
-
-
-
-
- <div class="comment" id="issuecomment-15438">
- <a class="avatar" href="/biodantas">
- <img src="https://seccdn.libravatar.org/avatar/23633838a5487dc30d0d288c26e04dbf">
- </a>
- <div class="content">
- <div class="ui top attached header">
- <span class="text grey"><a href="/biodantas">biodantas</a> commented <a href="#issuecomment-15438"><span class="time-since" title="Thu, 15 Aug 2019 15:23:35 UTC">1 year ago</span></a></span>
- <div class="ui right actions">
-
- <div class="item tag">
-
- Poster
-
- </div>
-
-
- </div>
- </div>
- <div class="ui attached segment">
- <div class="render-content markdown has-emoji">
-
- <p>I don't think what Chimo meant was that only local users are relevant. I think it was just that they weren't entirely sure how it should be handled. But I agree that we could simply invalidate the caches of all users who follow the author.</p>
-
- </div>
- <div class="raw-content hide">I don't think what Chimo meant was that only local users are relevant. I think it was just that they weren't entirely sure how it should be handled. But I agree that we could simply invalidate the caches of all users who follow the author.</div>
- <div class="edit-content-zone hide" data-write="issuecomment-15438-write" data-preview="issuecomment-15438-preview" data-update-url="/diogo/gnu-social/comments/15438" data-context="/diogo/gnu-social"></div>
- </div>
-
- </div>
- </div>
-
-
-
-
-
- <div class="comment" id="issuecomment-15445">
- <a class="avatar" href="/diogo">
- <img src="/avatars/12290">
- </a>
- <div class="content">
- <div class="ui top attached header">
- <span class="text grey"><a href="/diogo">Diogo Cordeiro</a> commented <a href="#issuecomment-15445"><span class="time-since" title="Thu, 15 Aug 2019 21:30:02 UTC">1 year ago</span></a></span>
- <div class="ui right actions">
-
- <div class="item tag">
-
- Owner
-
- </div>
-
-
- </div>
- </div>
- <div class="ui attached segment">
- <div class="render-content markdown has-emoji">
-
- <p>Ah, sorry, I had misread.</p>
- <p><a href="/local_user" rel="nofollow">@local_user</a> posts</p>
- <p><a href="/another_local_user" rel="nofollow">@another_local_user</a> is subscribed to <a href="/local_user" rel="nofollow">@local_user</a> thus his notice stream is invalidated</p>
- <p><a href="/remote_user" rel="nofollow">@remote_user</a> posts</p>
- <p><a href="/local_user" rel="nofollow">@local_user</a> is subscribed to <a href="/remote_user" rel="nofollow">@remote_user</a> thus his notice stream is invalidated</p>
- <hr>
- <p>So, essentially, you need the attention profiles for every saved notice.</p>
- <p>I guess you will want the <a href="https://notabug.org/diogo/gnu-social/src/nightly/classes/Notice.php#L708" rel="nofollow">StartNoticeSave</a> event and the <a href="https://notabug.org/diogo/gnu-social/src/nightly/classes/Notice.php#L1868" rel="nofollow">getAttentionProfiles()</a> method.</p>
-
- </div>
- <div class="raw-content hide">Ah, sorry, I had misread.
- @local_user posts
- @another_local_user is subscribed to @local_user thus his notice stream is invalidated
- @remote_user posts
- @local_user is subscribed to @remote_user thus his notice stream is invalidated
- ---
- So, essentially, you need the attention profiles for every saved notice.
- I guess you will want the [StartNoticeSave](https://notabug.org/diogo/gnu-social/src/nightly/classes/Notice.php#L708) event and the [getAttentionProfiles()](https://notabug.org/diogo/gnu-social/src/nightly/classes/Notice.php#L1868) method.</div>
- <div class="edit-content-zone hide" data-write="issuecomment-15445-write" data-preview="issuecomment-15445-preview" data-update-url="/diogo/gnu-social/comments/15445" data-context="/diogo/gnu-social"></div>
- </div>
-
- </div>
- </div>
-
-
-
-
- <div class="ui warning message">
- <a href="/user/login?redirect_to=/diogo/gnu-social/issues/52">Sign in</a> to join this conversation.
- </div>
-
- </ui>
- </div>
- <div class="four wide column">
- <div class="ui segment metas">
- <div class="ui disabled floating jump select-label dropdown">
- <span class="text">
- <strong>Labels</strong>
- <span class="octicon octicon-gear"></span>
- </span>
- <div class="filter menu" data-action="update" data-update-url="/diogo/gnu-social/issues/52/label">
- <div class="no-select item">Clear labels</div>
-
- <a class=" item" href="#" data-id="1564" data-id-selector="#label_1564"><span class="octicon "></span><span class="label color" style="background-color: #fbca04"></span> bounty</a>
-
- <a class=" item" href="#" data-id="1483" data-id-selector="#label_1483"><span class="octicon "></span><span class="label color" style="background-color: #ee0701"></span> bug</a>
-
- <a class=" item" href="#" data-id="1484" data-id-selector="#label_1484"><span class="octicon "></span><span class="label color" style="background-color: #cccccc"></span> duplicate</a>
-
- <a class=" item" href="#" data-id="1485" data-id-selector="#label_1485"><span class="octicon "></span><span class="label color" style="background-color: #84b6eb"></span> enhancement</a>
-
- <a class=" item" href="#" data-id="1486" data-id-selector="#label_1486"><span class="octicon "></span><span class="label color" style="background-color: #128a0c"></span> help wanted</a>
-
- <a class=" item" href="#" data-id="1487" data-id-selector="#label_1487"><span class="octicon "></span><span class="label color" style="background-color: #e6e6e6"></span> invalid</a>
-
- <a class=" item" href="#" data-id="1488" data-id-selector="#label_1488"><span class="octicon "></span><span class="label color" style="background-color: #cc317c"></span> question</a>
-
- <a class="checked item" href="#" data-id="1565" data-id-selector="#label_1565"><span class="octicon octicon-check"></span><span class="label color" style="background-color: #d4c5f9"></span> RFC</a>
-
- <a class=" item" href="#" data-id="1841" data-id-selector="#label_1841"><span class="octicon "></span><span class="label color" style="background-color: #0052cc"></span> v3</a>
-
- <a class=" item" href="#" data-id="1489" data-id-selector="#label_1489"><span class="octicon "></span><span class="label color" style="background-color: #ffffff"></span> wontfix</a>
-
- </div>
- </div>
- <div class="ui labels list">
- <span class="no-select item hide">No Label</span>
-
- <div class="item">
- <a class="ui label hide" id="label_1564" href="/diogo/gnu-social/issues?labels=1564" style="color: #000; background-color: #fbca04">bounty</a>
- </div>
-
- <div class="item">
- <a class="ui label hide" id="label_1483" href="/diogo/gnu-social/issues?labels=1483" style="color: #fff; background-color: #ee0701">bug</a>
- </div>
-
- <div class="item">
- <a class="ui label hide" id="label_1484" href="/diogo/gnu-social/issues?labels=1484" style="color: #000; background-color: #cccccc">duplicate</a>
- </div>
-
- <div class="item">
- <a class="ui label hide" id="label_1485" href="/diogo/gnu-social/issues?labels=1485" style="color: #000; background-color: #84b6eb">enhancement</a>
- </div>
-
- <div class="item">
- <a class="ui label hide" id="label_1486" href="/diogo/gnu-social/issues?labels=1486" style="color: #fff; background-color: #128a0c">help wanted</a>
- </div>
-
- <div class="item">
- <a class="ui label hide" id="label_1487" href="/diogo/gnu-social/issues?labels=1487" style="color: #000; background-color: #e6e6e6">invalid</a>
- </div>
-
- <div class="item">
- <a class="ui label hide" id="label_1488" href="/diogo/gnu-social/issues?labels=1488" style="color: #fff; background-color: #cc317c">question</a>
- </div>
-
- <div class="item">
- <a class="ui label " id="label_1565" href="/diogo/gnu-social/issues?labels=1565" style="color: #000; background-color: #d4c5f9">RFC</a>
- </div>
-
- <div class="item">
- <a class="ui label hide" id="label_1841" href="/diogo/gnu-social/issues?labels=1841" style="color: #fff; background-color: #0052cc">v3</a>
- </div>
-
- <div class="item">
- <a class="ui label hide" id="label_1489" href="/diogo/gnu-social/issues?labels=1489" style="color: #000; background-color: #ffffff">wontfix</a>
- </div>
-
- </div>
- <div class="ui divider"></div>
- <div class="ui disabled floating jump select-milestone dropdown">
- <span class="text">
- <strong>Milestone</strong>
- <span class="octicon octicon-gear"></span>
- </span>
- <div class="menu" data-action="update" data-update-url="/diogo/gnu-social/issues/52/milestone">
- <div class="no-select item">Clear milestone</div>
-
-
- </div>
- </div>
- <div class="ui select-milestone list">
- <span class="no-select item ">No Milestone</span>
- <div class="selected">
-
- </div>
- </div>
- <div class="ui divider"></div>
- <input id="assignee_id" name="assignee_id" type="hidden" value="">
- <div class="ui disabled floating jump select-assignee dropdown">
- <span class="text">
- <strong>Assignee</strong>
- <span class="octicon octicon-gear"></span>
- </span>
- <div class="menu" data-action="update" data-update-url="/diogo/gnu-social/issues/52/assignee">
- <div class="no-select item">Clear assignee</div>
-
- </div>
- </div>
- <div class="ui select-assignee list">
- <span class="no-select item hide">No assignee</span>
- <div class="selected">
-
- <a class="item" href="/diogo/gnu-social/issues?assignee=22439"><img class="ui avatar image" src="https://seccdn.libravatar.org/avatar/23633838a5487dc30d0d288c26e04dbf"> biodantas</a>
-
- </div>
- </div>
- <div class="ui divider"></div>
- <div class="ui participants">
- <span class="text"><strong>2 Participants</strong></span>
- <div>
-
- <a href="/biodantas">
- <img class="ui avatar image poping up" src="https://seccdn.libravatar.org/avatar/23633838a5487dc30d0d288c26e04dbf" data-content="biodantas" data-position="top center" data-variation="small inverted">
- </a>
-
- <a href="/diogo">
- <img class="ui avatar image poping up" src="/avatars/12290" data-content="Diogo Cordeiro" data-position="top center" data-variation="small inverted">
- </a>
-
- </div>
- </div>
- </div>
- </div>
- </div>
- <div class="hide" id="edit-content-form">
- <div class="ui comment form">
- <div class="ui top attached tabular menu">
- <a class="active write item">Write</a>
- <a class="preview item" data-url="/api/v1/markdown" data-context="/diogo/gnu-social">Preview</a>
- </div>
- <div class="ui bottom attached active write tab segment">
- <textarea tabindex="1" id="content" name="content"></textarea>
- </div>
- <div class="ui bottom attached tab preview segment markdown">
- Loading...
- </div>
- <div class="text right edit buttons">
- <div class="ui basic blue cancel button" tabindex="3">Cancel</div>
- <div class="ui green save button" tabindex="2">Save</div>
- </div>
- </div>
- </div>
- <div class="hide" id="no-content">
- <span class="no-content">There is no content yet.</span>
- </div>
- </div>
-
- </div>
- </div>
- </div>
- <footer>
- <div class="ui container">
- <div class="ui left">
- <a href="/tos">Terms of Service</a>
- •
- <a href="/about">About us</a>
- •
- <a href="/outages">Outages</a>
- •
- <a href="/hp/gogs/issues">Report a problem</a>
- •
- <a href="/assets/librejs/librejs.html" data-jslicense="1">Javascript licenses</a>
- •
- <a href="/fingerprints">SSH Fingerprints</a>
- </div>
- <div class="ui right links">
-
- <div class="ui language bottom floating slide up dropdown link item">
- <i class="world icon"></i>
- <div class="text">English</div>
- <div class="menu">
-
- <a class="item active selected" href="#">English</a>
-
- <a class="item " href="/diogo/gnu-social/issues/52?lang=zh-CN">简体中文</a>
-
- <a class="item " href="/diogo/gnu-social/issues/52?lang=zh-HK">繁體中文(香港)</a>
-
- <a class="item " href="/diogo/gnu-social/issues/52?lang=zh-TW">繁體中文(臺灣)</a>
-
- <a class="item " href="/diogo/gnu-social/issues/52?lang=de-DE">Deutsch</a>
-
- <a class="item " href="/diogo/gnu-social/issues/52?lang=fr-FR">français</a>
-
- <a class="item " href="/diogo/gnu-social/issues/52?lang=nl-NL">Nederlands</a>
-
- <a class="item " href="/diogo/gnu-social/issues/52?lang=lv-LV">latviešu</a>
-
- <a class="item " href="/diogo/gnu-social/issues/52?lang=ru-RU">русский</a>
-
- <a class="item " href="/diogo/gnu-social/issues/52?lang=ja-JP">日本語</a>
-
- <a class="item " href="/diogo/gnu-social/issues/52?lang=es-ES">español</a>
-
- <a class="item " href="/diogo/gnu-social/issues/52?lang=pt-BR">português do Brasil</a>
-
- <a class="item " href="/diogo/gnu-social/issues/52?lang=pl-PL">polski</a>
-
- <a class="item " href="/diogo/gnu-social/issues/52?lang=bg-BG">български</a>
-
- <a class="item " href="/diogo/gnu-social/issues/52?lang=it-IT">italiano</a>
-
- <a class="item " href="/diogo/gnu-social/issues/52?lang=fi-FI">suomi</a>
-
- <a class="item " href="/diogo/gnu-social/issues/52?lang=tr-TR">Türkçe</a>
-
- <a class="item " href="/diogo/gnu-social/issues/52?lang=cs-CZ">čeština</a>
-
- <a class="item " href="/diogo/gnu-social/issues/52?lang=sr-SP">српски</a>
-
- <a class="item " href="/diogo/gnu-social/issues/52?lang=sv-SE">svenska</a>
-
- <a class="item " href="/diogo/gnu-social/issues/52?lang=ko-KR">한국어</a>
-
- <a class="item " href="/diogo/gnu-social/issues/52?lang=gl-ES">galego</a>
-
- <a class="item " href="/diogo/gnu-social/issues/52?lang=uk-UA">українська</a>
-
- <a class="item " href="/diogo/gnu-social/issues/52?lang=en-GB">English (United Kingdom)</a>
-
- <a class="item " href="/diogo/gnu-social/issues/52?lang=hu-HU">Magyar</a>
-
- <a class="item " href="/diogo/gnu-social/issues/52?lang=sk-SK">Slovenčina</a>
-
- <a class="item " href="/diogo/gnu-social/issues/52?lang=id-ID">Indonesian</a>
-
- <a class="item " href="/diogo/gnu-social/issues/52?lang=fa-IR">Persian</a>
-
- </div>
- </div>
-
- </div>
- </div>
- </footer>
- </body>
- <link rel="stylesheet" href="/plugins/highlight-9.6.0/github.css">
- <script src="/plugins/highlight-9.6.0/highlight.pack.js"></script>
- <link rel="stylesheet" href="/plugins/dropzone-4.2.0/dropzone.css">
- <script src="/plugins/dropzone-4.2.0/dropzone.js"></script>
- <script src="/js/libs/emojify-1.1.0.min.js"></script>
- <script src="/js/libs/clipboard-1.5.9.min.js"></script>
-
- </html>
|