Skip to content

Commit 85ef45d

Browse files
author
Lucas Araujo
committed
Added linkding enhanced app
1 parent 3a09b21 commit 85ef45d

5 files changed

Lines changed: 90 additions & 0 deletions

File tree

Linkding/Linkding.php

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
<?php
2+
3+
namespace App\SupportedApps\Linkding;
4+
5+
use Log;
6+
7+
class Linkding extends \App\SupportedApps implements \App\EnhancedApps
8+
{
9+
public $config;
10+
11+
public function __construct() {
12+
}
13+
14+
public function test()
15+
{
16+
Log::info('Testing Linkding API');
17+
Log::info('URL: ' . $this->url('api/bookmarks'));
18+
Log::info('Headers: ' . json_encode($this->getHeaders()));
19+
20+
$test = parent::appTest($this->url('api/bookmarks?limit=1'), $this->getHeaders());
21+
echo $test->status;
22+
}
23+
24+
public function livestats()
25+
{
26+
$status = 'inactive';
27+
$res = parent::execute($this->url('api/bookmarks?limit=1000'), $this->getHeaders());
28+
$details = json_decode($res->getBody());
29+
30+
$data = [];
31+
if ($details) {
32+
$status = 'active';
33+
$data = [
34+
"bookmark_count" => $details->count,
35+
];
36+
}
37+
38+
return parent::getLiveStats($status, $data);
39+
}
40+
41+
public function url($endpoint)
42+
{
43+
$api_url = parent::normaliseurl($this->config->url) . $endpoint;
44+
return $api_url;
45+
}
46+
47+
private function getHeaders()
48+
{
49+
return [
50+
"headers" => [
51+
"Authorization" => "Token " . $this->config->access_token,
52+
],
53+
];
54+
}
55+
}

Linkding/app.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"appid": "1a039cf9812aee2944f3e2c472288fab189bc1a9",
3+
"name": "Linkding",
4+
"website": "https://linkding.link/",
5+
"license": "MIT License",
6+
"description": "A self-hosted bookmark manager designed to be minimal, fast, and easy to set up.",
7+
"enhanced": true,
8+
"tile_background": "dark",
9+
"icon": "linkding.png"
10+
}

Linkding/config.blade.php

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<h2>{{ __('app.apps.config') }} ({{ __('app.optional') }}) @include('items.enable')</h2>
2+
<div class="items">
3+
<div class="input">
4+
<label>{{ strtoupper(__('app.url')) }}</label>
5+
{!! Form::text('config[override_url]', null, array('placeholder' => __('app.apps.override'), 'id' => 'override_url', 'class' => 'form-control')) !!}
6+
</div>
7+
<div class="input">
8+
<label>Access Token</label>
9+
{!! Form::text('config[access_token]', null, array('placeholder' => 'Access Token', 'data-config' => 'access_token', 'class' => 'form-control config-item')) !!}
10+
</div>
11+
<div class="input">
12+
<button style="margin-top: 32px;" class="btn test" id="test_config">Test</button>
13+
</div>
14+
</div>
15+

Linkding/linkding.png

4.49 KB
Loading

Linkding/livestats.blade.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<ul class="livestats">
2+
<li>
3+
<span class="title">Bookmarks</span>
4+
@if ($bookmark_count >== 1000)
5+
<strong>{!! $bookmark_count !!}</strong>
6+
@else
7+
<strong class="text-danger">1000+</strong>
8+
@endif
9+
</li>
10+
</ul>

0 commit comments

Comments
 (0)