You've already forked joplin
mirror of
https://github.com/laurent22/joplin.git
synced 2025-11-29 22:48:10 +02:00
Update website
This commit is contained in:
@@ -379,6 +379,7 @@ https://github.com/laurent22/joplin/blob/dev/readme/api/references/development_m
|
||||
<li><a href="https://joplinapp.org/spec/search_sorting/">Search Sorting spec</a></li>
|
||||
<li><a href="https://joplinapp.org/spec/server_file_url_format/">Server: File URL Format</a></li>
|
||||
<li><a href="https://joplinapp.org/spec/server_delta_sync/">Server: Delta Sync</a></li>
|
||||
<li><a href="https://joplinapp.org/spec/server_sharing/">Server: Sharing</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
@@ -393,6 +394,7 @@ https://github.com/laurent22/joplin/blob/dev/readme/api/references/development_m
|
||||
<ul>
|
||||
<li><a href="https://joplinapp.org/changelog/">Changelog (Desktop App)</a></li>
|
||||
<li><a href="https://joplinapp.org/changelog_cli/">Changelog (CLI App)</a></li>
|
||||
<li><a href="https://joplinapp.org/changelog_server/">Changelog (Server)</a></li>
|
||||
<li><a href="https://joplinapp.org/stats/">Stats</a></li>
|
||||
<li><a href="https://joplinapp.org/donate/">Donate</a></li>
|
||||
</ul>
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -111,6 +111,12 @@
|
||||
<li class="tsd-kind-get-signature tsd-parent-kind-class"><a href="joplin.html#workspace" class="tsd-kind-icon">workspace</a></li>
|
||||
</ul>
|
||||
</section>
|
||||
<section class="tsd-index-section ">
|
||||
<h3>Methods</h3>
|
||||
<ul class="tsd-index-list">
|
||||
<li class="tsd-kind-method tsd-parent-kind-class"><a href="joplin.html#require" class="tsd-kind-icon">require</a></li>
|
||||
</ul>
|
||||
</section>
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
@@ -258,6 +264,46 @@
|
||||
<h4 class="tsd-returns-title">Returns <a href="joplinworkspace.html" class="tsd-signature-type">joplin.workspace</a></h4>
|
||||
|
||||
|
||||
-->
|
||||
</li>
|
||||
</ul>
|
||||
</section>
|
||||
</section>
|
||||
<section class="tsd-panel-group tsd-member-group ">
|
||||
<h2>Methods</h2>
|
||||
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
|
||||
<a name="require" class="tsd-anchor"></a>
|
||||
<h3>require</h3>
|
||||
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
|
||||
<li class="tsd-signature tsd-kind-icon">require<span class="tsd-signature-symbol">(</span>_path<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span></li>
|
||||
</ul>
|
||||
<ul class="tsd-descriptions">
|
||||
<li class="tsd-description">
|
||||
<aside class="tsd-sources">
|
||||
</aside>
|
||||
<div class="tsd-comment tsd-typography">
|
||||
<div class="lead">
|
||||
<p>It is not possible to bundle native packages with a plugin, because they
|
||||
need to work cross-platforms. Instead access to certain useful native
|
||||
packages is provided using this function.</p>
|
||||
</div>
|
||||
<p>Currently these packages are available:</p>
|
||||
<ul>
|
||||
<li><a href="https://www.npmjs.com/package/sqlite3">sqlite3</a></li>
|
||||
<li><a href="https://www.npmjs.com/package/fs-extra">fs-extra</a></li>
|
||||
</ul>
|
||||
<p><a href="https://github.com/laurent22/joplin/tree/dev/packages/app-cli/tests/support/plugins/nativeModule">View the demo plugin</a></p>
|
||||
</div>
|
||||
<h4 class="tsd-parameters-title">Parameters</h4>
|
||||
<ul class="tsd-parameters">
|
||||
<li>
|
||||
<h5>_path: <span class="tsd-signature-type">string</span></h5>
|
||||
</li>
|
||||
</ul>
|
||||
<!-- JOPLINCHANGE
|
||||
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">any</span></h4>
|
||||
|
||||
|
||||
-->
|
||||
</li>
|
||||
</ul>
|
||||
@@ -308,6 +354,9 @@
|
||||
<li class=" tsd-kind-get-signature tsd-parent-kind-class">
|
||||
<a href="joplin.html#workspace" class="tsd-kind-icon">workspace</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-method tsd-parent-kind-class">
|
||||
<a href="joplin.html#require" class="tsd-kind-icon">require</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -92,8 +92,11 @@
|
||||
<section class="tsd-index-section ">
|
||||
<h3>Methods</h3>
|
||||
<ul class="tsd-index-list">
|
||||
<li class="tsd-kind-method tsd-parent-kind-class"><a href="joplinplugins.html#datadir" class="tsd-kind-icon">data<wbr>Dir</a></li>
|
||||
<li class="tsd-kind-method tsd-parent-kind-class"><a href="joplinplugins.html#installationdir" class="tsd-kind-icon">installation<wbr>Dir</a></li>
|
||||
<li class="tsd-kind-method tsd-parent-kind-class"><a href="joplinplugins.html#register" class="tsd-kind-icon">register</a></li>
|
||||
<li class="tsd-kind-method tsd-parent-kind-class"><a href="joplinplugins.html#registercontentscript" class="tsd-kind-icon">register<wbr>Content<wbr>Script</a></li>
|
||||
<li class="tsd-kind-method tsd-parent-kind-class"><a href="joplinplugins.html#require" class="tsd-kind-icon">require</a></li>
|
||||
</ul>
|
||||
</section>
|
||||
</div>
|
||||
@@ -103,6 +106,57 @@
|
||||
</section>
|
||||
<section class="tsd-panel-group tsd-member-group ">
|
||||
<h2>Methods</h2>
|
||||
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
|
||||
<a name="datadir" class="tsd-anchor"></a>
|
||||
<h3>data<wbr>Dir</h3>
|
||||
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
|
||||
<li class="tsd-signature tsd-kind-icon">data<wbr>Dir<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">></span></li>
|
||||
</ul>
|
||||
<ul class="tsd-descriptions">
|
||||
<li class="tsd-description">
|
||||
<aside class="tsd-sources">
|
||||
</aside>
|
||||
<div class="tsd-comment tsd-typography">
|
||||
<div class="lead">
|
||||
<p>Gets the plugin own data directory path. Use this to store any
|
||||
plugin-related data. Unlike <a href="joplinplugins.html#installationdir">installationDir</a>, any data stored here
|
||||
will be persisted.</p>
|
||||
</div>
|
||||
</div>
|
||||
<!-- JOPLINCHANGE
|
||||
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">></span></h4>
|
||||
|
||||
|
||||
-->
|
||||
</li>
|
||||
</ul>
|
||||
</section>
|
||||
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
|
||||
<a name="installationdir" class="tsd-anchor"></a>
|
||||
<h3>installation<wbr>Dir</h3>
|
||||
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
|
||||
<li class="tsd-signature tsd-kind-icon">installation<wbr>Dir<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">></span></li>
|
||||
</ul>
|
||||
<ul class="tsd-descriptions">
|
||||
<li class="tsd-description">
|
||||
<aside class="tsd-sources">
|
||||
</aside>
|
||||
<div class="tsd-comment tsd-typography">
|
||||
<div class="lead">
|
||||
<p>Gets the plugin installation directory. This can be used to access any
|
||||
asset that was packaged with the plugin. This directory should be
|
||||
considered read-only because any data you store here might be deleted or
|
||||
re-created at any time. To store new persistent data, use <a href="joplinplugins.html#datadir">dataDir</a>.</p>
|
||||
</div>
|
||||
</div>
|
||||
<!-- JOPLINCHANGE
|
||||
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">></span></h4>
|
||||
|
||||
|
||||
-->
|
||||
</li>
|
||||
</ul>
|
||||
</section>
|
||||
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
|
||||
<a name="register" class="tsd-anchor"></a>
|
||||
<h3>register</h3>
|
||||
@@ -171,6 +225,37 @@
|
||||
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">></span></h4>
|
||||
|
||||
|
||||
-->
|
||||
</li>
|
||||
</ul>
|
||||
</section>
|
||||
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
|
||||
<a name="require" class="tsd-anchor"></a>
|
||||
<h3>require</h3>
|
||||
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
|
||||
<li class="tsd-signature tsd-kind-icon">require<span class="tsd-signature-symbol">(</span>_path<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span></li>
|
||||
</ul>
|
||||
<ul class="tsd-descriptions">
|
||||
<li class="tsd-description">
|
||||
<aside class="tsd-sources">
|
||||
</aside>
|
||||
<div class="tsd-comment tsd-typography">
|
||||
<dl class="tsd-comment-tags">
|
||||
<dt>deprecated</dt>
|
||||
<dd><p>Use joplin.require()</p>
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
<h4 class="tsd-parameters-title">Parameters</h4>
|
||||
<ul class="tsd-parameters">
|
||||
<li>
|
||||
<h5>_path: <span class="tsd-signature-type">string</span></h5>
|
||||
</li>
|
||||
</ul>
|
||||
<!-- JOPLINCHANGE
|
||||
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">any</span></h4>
|
||||
|
||||
|
||||
-->
|
||||
</li>
|
||||
</ul>
|
||||
@@ -197,12 +282,21 @@
|
||||
<li class=" tsd-kind-constructor tsd-parent-kind-class">
|
||||
<a href="joplinplugins.html#constructor" class="tsd-kind-icon">constructor</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-method tsd-parent-kind-class">
|
||||
<a href="joplinplugins.html#datadir" class="tsd-kind-icon">data<wbr>Dir</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-method tsd-parent-kind-class">
|
||||
<a href="joplinplugins.html#installationdir" class="tsd-kind-icon">installation<wbr>Dir</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-method tsd-parent-kind-class">
|
||||
<a href="joplinplugins.html#register" class="tsd-kind-icon">register</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-method tsd-parent-kind-class">
|
||||
<a href="joplinplugins.html#registercontentscript" class="tsd-kind-icon">register<wbr>Content<wbr>Script</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-method tsd-parent-kind-class">
|
||||
<a href="joplinplugins.html#require" class="tsd-kind-icon">require</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -110,6 +110,12 @@
|
||||
<div class="tsd-signature tsd-kind-icon">advanced<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">boolean</span></div>
|
||||
<aside class="tsd-sources">
|
||||
</aside>
|
||||
<div class="tsd-comment tsd-typography">
|
||||
<div class="lead">
|
||||
<p>An advanced setting will be moved under the "Advanced" button in the
|
||||
config screen.</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
|
||||
<a name="apptypes" class="tsd-anchor"></a>
|
||||
@@ -117,6 +123,11 @@
|
||||
<div class="tsd-signature tsd-kind-icon">app<wbr>Types<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></div>
|
||||
<aside class="tsd-sources">
|
||||
</aside>
|
||||
<div class="tsd-comment tsd-typography">
|
||||
<div class="lead">
|
||||
<p>Reserved property. Not used at the moment.</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
|
||||
<a name="description" class="tsd-anchor"></a>
|
||||
@@ -131,6 +142,12 @@
|
||||
<div class="tsd-signature tsd-kind-icon">is<wbr>Enum<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">boolean</span></div>
|
||||
<aside class="tsd-sources">
|
||||
</aside>
|
||||
<div class="tsd-comment tsd-typography">
|
||||
<div class="lead">
|
||||
<p>To create a setting with multiple options, set this property to <code>true</code>.
|
||||
That setting will render as a dropdown list in the configuration screen.</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
|
||||
<a name="label" class="tsd-anchor"></a>
|
||||
@@ -152,13 +169,25 @@
|
||||
<div class="tsd-signature tsd-kind-icon">minimum<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div>
|
||||
<aside class="tsd-sources">
|
||||
</aside>
|
||||
<div class="tsd-comment tsd-typography">
|
||||
<div class="lead">
|
||||
<p>Set the min, max and step values if you want to restrict an int setting
|
||||
to a particular range.</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
|
||||
<a name="options" class="tsd-anchor"></a>
|
||||
<h3><span class="tsd-flag ts-flagOptional">Optional</span> options</h3>
|
||||
<div class="tsd-signature tsd-kind-icon">options<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">any</span></div>
|
||||
<div class="tsd-signature tsd-kind-icon">options<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Record</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">></span></div>
|
||||
<aside class="tsd-sources">
|
||||
</aside>
|
||||
<div class="tsd-comment tsd-typography">
|
||||
<div class="lead">
|
||||
<p>This property is required when <code>isEnum</code> is <code>true</code>. In which case, it
|
||||
should contain a map of value => label.</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
|
||||
<a name="public" class="tsd-anchor"></a>
|
||||
@@ -166,6 +195,14 @@
|
||||
<div class="tsd-signature tsd-kind-icon">public<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">boolean</span></div>
|
||||
<aside class="tsd-sources">
|
||||
</aside>
|
||||
<div class="tsd-comment tsd-typography">
|
||||
<div class="lead">
|
||||
<p>A public setting will appear in the Configuration screen and will be
|
||||
modifiable by the user. A private setting however will not appear there,
|
||||
and can only be changed programmatically. You may use this to store some
|
||||
values that you do not want to directly expose.</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
|
||||
<a name="section" class="tsd-anchor"></a>
|
||||
@@ -173,6 +210,12 @@
|
||||
<div class="tsd-signature tsd-kind-icon">section<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
|
||||
<aside class="tsd-sources">
|
||||
</aside>
|
||||
<div class="tsd-comment tsd-typography">
|
||||
<div class="lead">
|
||||
<p>You would usually set this to a section you would have created
|
||||
specifically for the plugin.</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
|
||||
<a name="secure" class="tsd-anchor"></a>
|
||||
@@ -180,6 +223,12 @@
|
||||
<div class="tsd-signature tsd-kind-icon">secure<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">boolean</span></div>
|
||||
<aside class="tsd-sources">
|
||||
</aside>
|
||||
<div class="tsd-comment tsd-typography">
|
||||
<div class="lead">
|
||||
<p>Set this to <code>true</code> to store secure data, such as passwords. Any such
|
||||
setting will be stored in the system keychain if one is available.</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
|
||||
<a name="step" class="tsd-anchor"></a>
|
||||
|
||||
@@ -379,6 +379,7 @@ https://github.com/laurent22/joplin/blob/dev/readme/api/references/plugin_loadin
|
||||
<li><a href="https://joplinapp.org/spec/search_sorting/">Search Sorting spec</a></li>
|
||||
<li><a href="https://joplinapp.org/spec/server_file_url_format/">Server: File URL Format</a></li>
|
||||
<li><a href="https://joplinapp.org/spec/server_delta_sync/">Server: Delta Sync</a></li>
|
||||
<li><a href="https://joplinapp.org/spec/server_sharing/">Server: Sharing</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
@@ -393,6 +394,7 @@ https://github.com/laurent22/joplin/blob/dev/readme/api/references/plugin_loadin
|
||||
<ul>
|
||||
<li><a href="https://joplinapp.org/changelog/">Changelog (Desktop App)</a></li>
|
||||
<li><a href="https://joplinapp.org/changelog_cli/">Changelog (CLI App)</a></li>
|
||||
<li><a href="https://joplinapp.org/changelog_server/">Changelog (Server)</a></li>
|
||||
<li><a href="https://joplinapp.org/stats/">Stats</a></li>
|
||||
<li><a href="https://joplinapp.org/donate/">Donate</a></li>
|
||||
</ul>
|
||||
|
||||
@@ -379,6 +379,7 @@ https://github.com/laurent22/joplin/blob/dev/readme/api/references/plugin_manife
|
||||
<li><a href="https://joplinapp.org/spec/search_sorting/">Search Sorting spec</a></li>
|
||||
<li><a href="https://joplinapp.org/spec/server_file_url_format/">Server: File URL Format</a></li>
|
||||
<li><a href="https://joplinapp.org/spec/server_delta_sync/">Server: Delta Sync</a></li>
|
||||
<li><a href="https://joplinapp.org/spec/server_sharing/">Server: Sharing</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
@@ -393,6 +394,7 @@ https://github.com/laurent22/joplin/blob/dev/readme/api/references/plugin_manife
|
||||
<ul>
|
||||
<li><a href="https://joplinapp.org/changelog/">Changelog (Desktop App)</a></li>
|
||||
<li><a href="https://joplinapp.org/changelog_cli/">Changelog (CLI App)</a></li>
|
||||
<li><a href="https://joplinapp.org/changelog_server/">Changelog (Server)</a></li>
|
||||
<li><a href="https://joplinapp.org/stats/">Stats</a></li>
|
||||
<li><a href="https://joplinapp.org/donate/">Donate</a></li>
|
||||
</ul>
|
||||
|
||||
@@ -379,6 +379,7 @@ https://github.com/laurent22/joplin/blob/dev/readme/api/references/rest_api.md
|
||||
<li><a href="https://joplinapp.org/spec/search_sorting/">Search Sorting spec</a></li>
|
||||
<li><a href="https://joplinapp.org/spec/server_file_url_format/">Server: File URL Format</a></li>
|
||||
<li><a href="https://joplinapp.org/spec/server_delta_sync/">Server: Delta Sync</a></li>
|
||||
<li><a href="https://joplinapp.org/spec/server_sharing/">Server: Sharing</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
@@ -393,6 +394,7 @@ https://github.com/laurent22/joplin/blob/dev/readme/api/references/rest_api.md
|
||||
<ul>
|
||||
<li><a href="https://joplinapp.org/changelog/">Changelog (Desktop App)</a></li>
|
||||
<li><a href="https://joplinapp.org/changelog_cli/">Changelog (CLI App)</a></li>
|
||||
<li><a href="https://joplinapp.org/changelog_server/">Changelog (Server)</a></li>
|
||||
<li><a href="https://joplinapp.org/stats/">Stats</a></li>
|
||||
<li><a href="https://joplinapp.org/donate/">Donate</a></li>
|
||||
</ul>
|
||||
@@ -950,6 +952,18 @@ async function fetchAllNotes() {
|
||||
<pre><code>curl -F 'data=@/path/to/file.jpg' -F 'props={"title":"my resource title"}' http://localhost:41184/resources
|
||||
</code></pre>
|
||||
<p>The "data" field is required, while the "props" one is not. If not specified, default values will be used.</p>
|
||||
<p><strong>From a plugin</strong> the syntax to create a resource is also a bit special:</p>
|
||||
<pre><code class="language-javascript"> await joplin.data.post(
|
||||
["resources"],
|
||||
null,
|
||||
{ title: "test.jpg" }, // Resource metadata
|
||||
[
|
||||
{
|
||||
path: "/path/to/test.jpg", // Actual file
|
||||
},
|
||||
]
|
||||
);
|
||||
</code></pre>
|
||||
<h2>PUT /resources/:id<a name="put-resources-id" href="#put-resources-id" class="heading-anchor">🔗</a></h2>
|
||||
<p>Sets the properties of the resource with ID :id</p>
|
||||
<h2>DELETE /resources/:id<a name="delete-resources-id" href="#delete-resources-id" class="heading-anchor">🔗</a></h2>
|
||||
|
||||
Reference in New Issue
Block a user