Compare commits
	
		
			107 Commits
		
	
	
		
			v2.2
			...
			84920cc4cf
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					84920cc4cf | ||
| 
						 | 
					e9676491ee | ||
| 
						 | 
					1a545bb2a1 | ||
| 
						 | 
					1e128a7cd8 | ||
| 
						 | 
					5dbb6a710c | ||
| 
						 | 
					dadadeb066 | ||
| 
						 | 
					c76ff26bd6 | ||
| 
						 | 
					50f8648f64 | ||
| 
						 | 
					5f82a9e339 | ||
| 
						 | 
					3278ba4eac | ||
| 
						 | 
					9fc72f8b68 | ||
| 
						 | 
					b7b707bd43 | ||
| 
						 | 
					7cf27e0fde | ||
| 
						 | 
					66f2a973a3 | ||
| 
						 | 
					7ecbbff18a | ||
| 
						 | 
					850ce195a0 | ||
| 
						 | 
					479aebd023 | ||
| 
						 | 
					9b178d1fb3 | ||
| 
						 | 
					3ab098db5c | ||
| 
						 | 
					6d16e93008 | ||
| 
						 | 
					98934daee4 | ||
| 
						 | 
					259474cae9 | ||
| 
						 | 
					1e65a7951b | ||
| 
						 | 
					bed5640366 | ||
| 
						 | 
					57ea83cf4f | ||
| 
						 | 
					219842d723 | ||
| 
						 | 
					a96fc101f2 | ||
| 
						 | 
					81a77ce0a4 | ||
| 
						 | 
					9ed359f964 | ||
| 
						 | 
					bc18557820 | ||
| 
						 | 
					7d99edab8d | ||
| 
						 | 
					32ca121520 | ||
| 
						 | 
					9f1a0534a3 | ||
| 
						 | 
					d2678be96d | ||
| 
						 | 
					95ebbb9d13 | ||
| 
						 | 
					0f6d4d639d | ||
| 
						 | 
					795a5d2cb4 | ||
| 
						 | 
					dd5f760606 | ||
| 
						 | 
					58d6a46e36 | ||
| 
						 | 
					a8d7b86cdc | ||
| 
						 | 
					aac3de7ca2 | ||
| 
						 | 
					de24659bae | ||
| 
						 | 
					632412c10e | ||
| 
						 | 
					012b58bbe4 | ||
| 
						 | 
					c092842ee4 | ||
| 
						 | 
					e4c1d01915 | ||
| 
						 | 
					ce07ddea92 | ||
| 
						 | 
					bd6322e533 | ||
| 
						 | 
					91da774286 | ||
| 
						 | 
					e62906e63d | ||
| 
						 | 
					56e5625adc | ||
| 
						 | 
					1ecf4b0bb4 | ||
| 
						 | 
					57d9421c7f | ||
| 
						 | 
					a73188944d | ||
| 
						 | 
					97904cc0f3 | ||
| 
						 | 
					f28f354992 | ||
| 
						 | 
					698f5d6d06 | ||
| 
						 | 
					b935a1c511 | ||
| 
						 | 
					10e6bfa5a0 | ||
| 
						 | 
					f030a4075b | ||
| 
						 | 
					c9dd977600 | ||
| 
						 | 
					c1bcc0c517 | ||
| 
						 | 
					2a5692d9a7 | ||
| 
						 | 
					a8d160f9b1 | ||
| 
						 | 
					286cbff236 | ||
| 
						 | 
					fff0870d3b | ||
| 
						 | 
					fe22460c07 | ||
| 
						 | 
					18f2789a5d | ||
| 
						 | 
					7f161a5408 | ||
| 
						 | 
					cba3fbc48c | ||
| 
						 | 
					5e46f1480e | ||
| 
						 | 
					ead253c55f | ||
| 
						 | 
					6b8da92cb3 | ||
| 
						 | 
					a91f64ce9d | ||
| 
						 | 
					e1a6ccf133 | ||
| 
						 | 
					d2c034a850 | ||
| 
						 | 
					713930decc | ||
| 
						 | 
					ee2a825cf0 | ||
| 
						 | 
					8e9da86f83 | ||
| 
						 | 
					9eb49fd3a7 | ||
| 
						 | 
					684bc25b83 | ||
| 
						 | 
					8ceab03cd7 | ||
| 
						 | 
					34dad4ac8f | ||
| 
						 | 
					b40d930f8a | ||
| 
						 | 
					d4b34e900e | ||
| 
						 | 
					954b549029 | ||
| 
						 | 
					fbd0b2310e | ||
| 
						 | 
					be7af0ccaf | ||
| 
						 | 
					18221ef12d | ||
| 
						 | 
					4c0726412b | ||
| 
						 | 
					d7253a60b8 | ||
| 
						 | 
					2de3ddff08 | ||
| 
						 | 
					830248b6ae | ||
| 
						 | 
					f8db2ef7ad | ||
| 
						 | 
					109caaa889 | ||
| 
						 | 
					d0b83babd2 | ||
| 
						 | 
					de3decbffd | ||
| 
						 | 
					c92229a698 | ||
| 
						 | 
					176852b662 | ||
| 
						 | 
					52cc8ecbbd | ||
| 
						 | 
					e3e9542f1e | ||
| 
						 | 
					b78c8bf8bf | ||
| 
						 | 
					bff7476b58 | ||
| 
						 | 
					05f5785660 | ||
| 
						 | 
					cb50aed89a | ||
| 
						 | 
					df655aca5e | ||
| 
						 | 
					86853a87bf | 
							
								
								
									
										12
									
								
								.github/workflows/build.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						@@ -7,7 +7,7 @@ on:
 | 
			
		||||
jobs:
 | 
			
		||||
  build_macos:
 | 
			
		||||
    name: Build for MacOS
 | 
			
		||||
    runs-on: macos-10.15
 | 
			
		||||
    runs-on: macos-13
 | 
			
		||||
    steps:
 | 
			
		||||
    - name: "Checkout"
 | 
			
		||||
      uses: actions/checkout@v2
 | 
			
		||||
@@ -16,7 +16,7 @@ jobs:
 | 
			
		||||
    - name: "Setup Go"
 | 
			
		||||
      uses: actions/setup-go@v2
 | 
			
		||||
      with:
 | 
			
		||||
        go-version: '^1.16'
 | 
			
		||||
        go-version: '^1.17'
 | 
			
		||||
    - name: Cache Go Modules
 | 
			
		||||
      uses: actions/cache@v2
 | 
			
		||||
      with:
 | 
			
		||||
@@ -34,7 +34,7 @@ jobs:
 | 
			
		||||
 | 
			
		||||
  build_windows:
 | 
			
		||||
    name: Build for Windows
 | 
			
		||||
    runs-on: windows-2019
 | 
			
		||||
    runs-on: windows-2022
 | 
			
		||||
    steps:
 | 
			
		||||
    - name: "Checkout"
 | 
			
		||||
      uses: actions/checkout@v2
 | 
			
		||||
@@ -43,7 +43,7 @@ jobs:
 | 
			
		||||
    - name: "Setup Go"
 | 
			
		||||
      uses: actions/setup-go@v2
 | 
			
		||||
      with:
 | 
			
		||||
        go-version: '^1.16'
 | 
			
		||||
        go-version: '^1.17'
 | 
			
		||||
    - name: Cache Go Modules
 | 
			
		||||
      uses: actions/cache@v2
 | 
			
		||||
      with:
 | 
			
		||||
@@ -61,7 +61,7 @@ jobs:
 | 
			
		||||
 | 
			
		||||
  build_linux:
 | 
			
		||||
    name: Build for Linux
 | 
			
		||||
    runs-on: ubuntu-18.04
 | 
			
		||||
    runs-on: ubuntu-22.04
 | 
			
		||||
    steps:
 | 
			
		||||
    - name: "Checkout"
 | 
			
		||||
      uses: actions/checkout@v2
 | 
			
		||||
@@ -70,7 +70,7 @@ jobs:
 | 
			
		||||
    - name: "Setup Go"
 | 
			
		||||
      uses: actions/setup-go@v2
 | 
			
		||||
      with:
 | 
			
		||||
        go-version: '^1.16'
 | 
			
		||||
        go-version: '^1.17'
 | 
			
		||||
    - name: Cache Go Modules
 | 
			
		||||
      uses: actions/cache@v2
 | 
			
		||||
      with:
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										44
									
								
								build.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,44 @@
 | 
			
		||||
## Compilation
 | 
			
		||||
 | 
			
		||||
Install `Go >= 1.17` and `GCC`. Get the source code:
 | 
			
		||||
 | 
			
		||||
    git clone https://github.com/nkanaev/yarr.git
 | 
			
		||||
 | 
			
		||||
Then run one of the corresponding commands:
 | 
			
		||||
 | 
			
		||||
    # create an executable for the host os
 | 
			
		||||
    make build_macos    # -> _output/macos/yarr.app
 | 
			
		||||
    make build_linux    # -> _output/linux/yarr
 | 
			
		||||
    make build_windows  # -> _output/windows/yarr.exe
 | 
			
		||||
 | 
			
		||||
    # host-specific cli version (no gui)
 | 
			
		||||
    make build_default  # -> _output/yarr
 | 
			
		||||
 | 
			
		||||
    # ... or start a dev server locally
 | 
			
		||||
    make serve          # starts a server at http://localhost:7070
 | 
			
		||||
 | 
			
		||||
    # ... or build a docker image
 | 
			
		||||
    docker build -t yarr .
 | 
			
		||||
 | 
			
		||||
## ARM compilation
 | 
			
		||||
 | 
			
		||||
The instructions below are to cross-compile *yarr* to `Linux/ARM*`.
 | 
			
		||||
 | 
			
		||||
Build:
 | 
			
		||||
 | 
			
		||||
    docker build -t yarr.arm -f dockerfile.arm .
 | 
			
		||||
 | 
			
		||||
Test:
 | 
			
		||||
 | 
			
		||||
    # inside host
 | 
			
		||||
    docker run -it --rm yarr.arm
 | 
			
		||||
 | 
			
		||||
    # then, inside container
 | 
			
		||||
    cd /root/out
 | 
			
		||||
    qemu-aarch64 -L /usr/aarch64-linux-gnu/ yarr.arm64
 | 
			
		||||
 | 
			
		||||
Extract files from images:
 | 
			
		||||
 | 
			
		||||
    CID=$(docker create yarr.arm)
 | 
			
		||||
    docker cp -a "$CID:/root/out" .
 | 
			
		||||
    docker rm "$CID"
 | 
			
		||||
@@ -1,4 +1,39 @@
 | 
			
		||||
# upcoming
 | 
			
		||||
# upcoming 
 | 
			
		||||
 | 
			
		||||
- (new) Fever API support (thanks to @icefed)
 | 
			
		||||
- (fix) duplicate articles caused by the same feed addition (thanks to @adaszko)
 | 
			
		||||
- (fix) relative article links (thanks to @adazsko for the report)
 | 
			
		||||
- (fix) atom article links stored in id element (thanks to @adazsko for the report)
 | 
			
		||||
 | 
			
		||||
# v2.4 (2023-08-15)
 | 
			
		||||
 | 
			
		||||
- (new) ARM build support (thanks to @tillcash & @fenuks)
 | 
			
		||||
- (new) auth configuration via param or env variable (thanks to @pierreprinetti)
 | 
			
		||||
- (new) web app manifest for an app-like experience on mobile (thanks to @qbit)
 | 
			
		||||
- (fix) concurrency issue crashing the app (thanks to @quoing)
 | 
			
		||||
- (fix) favicon visibility in dark mode (thanks to @caycaycarly for the report)
 | 
			
		||||
- (fix) autoloading more articles not working in certain edge cases (thanks to @fenuks for the report)
 | 
			
		||||
- (fix) handle Google URL redirects in "Read Here" (thanks to @cubbei for discovery)
 | 
			
		||||
- (fix) handle failures to extract content in "Read Here" (thanks to @grigio for the report)
 | 
			
		||||
- (fix) article view width for high resolution screens (thanks to @whaler-ragweed for the report)
 | 
			
		||||
- (fix) make newly added feed searchable (thanks to @BMorearty for the report)
 | 
			
		||||
- (fix) feed/article selection accessibility via arrow keys (thanks to @grigio and @tillcash)
 | 
			
		||||
- (fix) keyboard shortcuts in Firefox (thanks to @kaloyan13)
 | 
			
		||||
- (fix) keyboard shortcuts in non-English layouts (thanks to @kaloyan13)
 | 
			
		||||
- (fix) sorting articles with timezone information (thanks to @x2cf)
 | 
			
		||||
- (fix) handling links set in guid only for certain feeds (thanks to @adaszko for the report)
 | 
			
		||||
- (fix) crashes caused by feed icon endpoint (thanks to @adaszko)
 | 
			
		||||
 | 
			
		||||
# v2.3 (2022-05-03)
 | 
			
		||||
 | 
			
		||||
- (fix) handling encodings (thanks to @f100024 & @fserb)
 | 
			
		||||
- (fix) parsing xml feeds with illegal characters (thanks to @stepelu for the report)
 | 
			
		||||
- (fix) old articles reappearing as unread (thanks to @adaszko for the report)
 | 
			
		||||
- (fix) item list scrolling issue on large screens (thanks to @bielej for the report)
 | 
			
		||||
- (fix) keyboard shortcuts color in dark mode (thanks to @John09f9 for the report)
 | 
			
		||||
- (etc) autofocus when adding a new feed (thanks to @lakuapik)
 | 
			
		||||
 | 
			
		||||
# v2.2 (2021-11-20)
 | 
			
		||||
 | 
			
		||||
- (fix) windows console support (thanks to @dufferzafar for the report)
 | 
			
		||||
- (fix) remove html tags from article titles (thanks to Alex Went for the report)
 | 
			
		||||
 
 | 
			
		||||
@@ -1 +0,0 @@
 | 
			
		||||
- feedlist keyboard navigation is flaky in "unread" section
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										44
									
								
								dockerfile.arm
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,44 @@
 | 
			
		||||
FROM ubuntu:20.04
 | 
			
		||||
 | 
			
		||||
# Install GCC
 | 
			
		||||
RUN apt update
 | 
			
		||||
RUN apt install -y \
 | 
			
		||||
        wget build-essential \
 | 
			
		||||
        gcc-aarch64-linux-gnu \
 | 
			
		||||
        binutils-aarch64-linux-gnu binutils-aarch64-linux-gnu-dbg \
 | 
			
		||||
        gcc-arm-linux-gnueabihf \
 | 
			
		||||
        binutils-arm-linux-gnueabihf binutils-arm-linux-gnueabihf-dbg
 | 
			
		||||
RUN env DEBIAN_FRONTEND=noninteractive \
 | 
			
		||||
    apt install -y qemu-user qemu-user-static
 | 
			
		||||
 | 
			
		||||
# Install Golang
 | 
			
		||||
RUN wget --quiet https://go.dev/dl/go1.18.2.linux-amd64.tar.gz && \
 | 
			
		||||
    rm -rf /usr/local/go && \
 | 
			
		||||
    tar -C /usr/local -xzf go1.18.2.linux-amd64.tar.gz
 | 
			
		||||
ENV PATH=$PATH:/usr/local/go/bin
 | 
			
		||||
 | 
			
		||||
# Copy source code
 | 
			
		||||
WORKDIR /root/src
 | 
			
		||||
RUN mkdir /root/out
 | 
			
		||||
COPY . .
 | 
			
		||||
 | 
			
		||||
# Build ARM64
 | 
			
		||||
RUN env \
 | 
			
		||||
        CC=aarch64-linux-gnu-gcc \
 | 
			
		||||
        CGO_ENABLED=1 \
 | 
			
		||||
        GOOS=linux GOARCH=arm64 \
 | 
			
		||||
    go build \
 | 
			
		||||
        -tags "sqlite_foreign_keys release linux" \
 | 
			
		||||
        -ldflags="-s -w" \
 | 
			
		||||
        -o /root/out/yarr.arm64 src/main.go
 | 
			
		||||
 | 
			
		||||
RUN env \
 | 
			
		||||
        CC=arm-linux-gnueabihf-gcc \
 | 
			
		||||
        CGO_ENABLED=1 \
 | 
			
		||||
        GOOS=linux GOARCH=arm GOARM=7 \
 | 
			
		||||
    go build \
 | 
			
		||||
        -tags "sqlite_foreign_keys release linux" \
 | 
			
		||||
        -ldflags="-s -w" \
 | 
			
		||||
        -o /root/out/yarr.arm7 src/main.go
 | 
			
		||||
 | 
			
		||||
CMD ["/bin/bash"]
 | 
			
		||||
							
								
								
									
										23
									
								
								etc/install-linux.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,23 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
 | 
			
		||||
cat >"$HOME/.local/share/applications/yarr.desktop" <<END
 | 
			
		||||
[Desktop Entry]
 | 
			
		||||
Name=yarr
 | 
			
		||||
Exec=$HOME/.local/bin/yarr -open
 | 
			
		||||
Icon=yarr
 | 
			
		||||
Type=Application
 | 
			
		||||
Categories=Internet;
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
cat >"$HOME/.local/share/icons/yarr.svg" <<END
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-anchor-favicon">
 | 
			
		||||
  <circle cx="12" cy="5" r="3" stroke-width="4" stroke="#ffffff"></circle>
 | 
			
		||||
  <line x1="12" y1="22" x2="12" y2="8" stroke-width="4" stroke="#ffffff"></line>
 | 
			
		||||
  <path d="M5 12H2a10 10 0 0 0 20 0h-3" stroke-width="4" stroke="#ffffff"></path>
 | 
			
		||||
 | 
			
		||||
  <circle cx="12" cy="5" r="3"></circle>
 | 
			
		||||
  <line x1="12" y1="22" x2="12" y2="8"></line>
 | 
			
		||||
  <path d="M5 12H2a10 10 0 0 0 20 0h-3"></path>
 | 
			
		||||
</svg>
 | 
			
		||||
END
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								etc/promo.png
									
									
									
									
									
								
							
							
						
						| 
		 Before Width: | Height: | Size: 430 KiB After Width: | Height: | Size: 173 KiB  | 
							
								
								
									
										19
									
								
								fever.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,19 @@
 | 
			
		||||
# Fever API support
 | 
			
		||||
 | 
			
		||||
Fever API is a kind of RSS HTTP API interface, because the Fever API definition is not very clear, so the implementation of Fever server and Client may have some compatibility problems.
 | 
			
		||||
 | 
			
		||||
The Fever API implemented by Yarr is based on the Fever API spec: https://github.com/DigitalDJ/tinytinyrss-fever-plugin/blob/master/fever-api.md.
 | 
			
		||||
 | 
			
		||||
Here are some Apps that have been tested to work with yarr.  Feel free to test other Clients/Apps and update the list here.
 | 
			
		||||
 | 
			
		||||
>  Different apps support different URL/Address formats.  Please note whether the URL entered has `http://` scheme and `/` suffix.
 | 
			
		||||
 | 
			
		||||
| App                                                                       | Platforms        | Config Server URL                                   |
 | 
			
		||||
|:------------------------------------------------------------------------- | ---------------- |:--------------------------------------------------- |
 | 
			
		||||
| [Reeder](https://reederapp.com/)                                          | MacOS<br>iOS     | 127.0.0.1:7070/fever<br>http://127.0.0.1:7070/fever |
 | 
			
		||||
| [ReadKit](https://readkit.app/)                                           | MacOS<br>iOS     | http://127.0.0.1:7070/fever                         |
 | 
			
		||||
| [Fluent Reader](https://github.com/yang991178/fluent-reader)              | MacOS<br>Windows | http://127.0.0.1:7070/fever/                        |
 | 
			
		||||
| [Unread](https://apps.apple.com/us/app/unread-an-rss-reader/id1363637349) | iOS              | http://127.0.0.1:7070/fever                         |
 | 
			
		||||
| [Fiery Feeds](https://voidstern.net/fiery-feeds)                          | MacOS<br>iOS     | http://127.0.0.1:7070/fever                         |
 | 
			
		||||
 | 
			
		||||
If you are having trouble using Fever, please open an issue and @icefed, thanks.
 | 
			
		||||
							
								
								
									
										8
									
								
								go.mod
									
									
									
									
									
								
							
							
						
						@@ -1,9 +1,11 @@
 | 
			
		||||
module github.com/nkanaev/yarr
 | 
			
		||||
 | 
			
		||||
go 1.16
 | 
			
		||||
go 1.17
 | 
			
		||||
 | 
			
		||||
require (
 | 
			
		||||
	github.com/mattn/go-sqlite3 v1.14.7
 | 
			
		||||
	golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420
 | 
			
		||||
	golang.org/x/sys v0.0.0-20210503173754-0981d6026fa6
 | 
			
		||||
	golang.org/x/net v0.8.0
 | 
			
		||||
	golang.org/x/sys v0.6.0
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
require golang.org/x/text v0.8.0 // indirect
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										41
									
								
								go.sum
									
									
									
									
									
								
							
							
						
						@@ -1,12 +1,39 @@
 | 
			
		||||
github.com/mattn/go-sqlite3 v1.14.7 h1:fxWBnXkxfM6sRiuH3bqJ4CfzZojMOLVc0UTsTglEghA=
 | 
			
		||||
github.com/mattn/go-sqlite3 v1.14.7/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU=
 | 
			
		||||
golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420 h1:a8jGStKg0XqKDlKqjLrXn0ioF5MH36pT7Z0BRTqLhbk=
 | 
			
		||||
golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
 | 
			
		||||
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
 | 
			
		||||
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
 | 
			
		||||
golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
 | 
			
		||||
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 | 
			
		||||
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
 | 
			
		||||
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
 | 
			
		||||
golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
 | 
			
		||||
golang.org/x/net v0.8.0 h1:Zrh2ngAOFYneWTAIAPethzeaQLuHwhuBkuV6ZiRnUaQ=
 | 
			
		||||
golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc=
 | 
			
		||||
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 | 
			
		||||
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 | 
			
		||||
golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 | 
			
		||||
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 | 
			
		||||
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
			
		||||
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
			
		||||
golang.org/x/sys v0.0.0-20210503173754-0981d6026fa6 h1:cdsMqa2nXzqlgs183pHxtvoVwU7CyzaCTAUOg94af4c=
 | 
			
		||||
golang.org/x/sys v0.0.0-20210503173754-0981d6026fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 | 
			
		||||
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 | 
			
		||||
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 | 
			
		||||
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 | 
			
		||||
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 | 
			
		||||
golang.org/x/sys v0.6.0 h1:MVltZSvRTcU2ljQOhs94SXPftV6DCNnZViHeQps87pQ=
 | 
			
		||||
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 | 
			
		||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
 | 
			
		||||
golang.org/x/text v0.3.6 h1:aRYxNxv6iGQlyVaZmk6ZgYEDa+Jg18DxebPSrd6bg1M=
 | 
			
		||||
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 | 
			
		||||
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
 | 
			
		||||
golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
 | 
			
		||||
golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U=
 | 
			
		||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 | 
			
		||||
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 | 
			
		||||
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
 | 
			
		||||
golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
 | 
			
		||||
golang.org/x/text v0.8.0 h1:57P1ETyNKtuIjB4SRd15iJxuhj8Gc416Y78H3qgMh68=
 | 
			
		||||
golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
 | 
			
		||||
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 | 
			
		||||
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 | 
			
		||||
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
 | 
			
		||||
golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
 | 
			
		||||
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								makefile
									
									
									
									
									
								
							
							
						
						@@ -1,4 +1,4 @@
 | 
			
		||||
VERSION=2.2
 | 
			
		||||
VERSION=2.4
 | 
			
		||||
GITHASH=$(shell git rev-parse --short=8 HEAD)
 | 
			
		||||
 | 
			
		||||
CGO_ENABLED=1
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										49
									
								
								readme.md
									
									
									
									
									
								
							
							
						
						@@ -3,67 +3,34 @@
 | 
			
		||||
**yarr** (yet another rss reader) is a web-based feed aggregator which can be used both
 | 
			
		||||
as a desktop application and a personal self-hosted server.
 | 
			
		||||
 | 
			
		||||
It is written in Go with the frontend in Vue.js. The storage is backed by SQLite.
 | 
			
		||||
The app is a single binary with an embedded database (SQLite).
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
## usage
 | 
			
		||||
 | 
			
		||||
The latest prebuilt binaries for Linux/MacOS/Windows are available
 | 
			
		||||
The latest prebuilt binaries for Linux/MacOS/Windows AMD64 are available
 | 
			
		||||
[here](https://github.com/nkanaev/yarr/releases/latest).
 | 
			
		||||
 | 
			
		||||
### macos
 | 
			
		||||
 | 
			
		||||
Download `yarr-*-macos64.zip`, unzip it, place `yarr.app` in `/Applications` folder.
 | 
			
		||||
To open the app follow the instructions provided [here][macos-open] or run the command below:
 | 
			
		||||
 | 
			
		||||
    xattr -d com.apple.quarantine /Applications/yarr.app
 | 
			
		||||
Download `yarr-*-macos64.zip`, unzip it, place `yarr.app` in `/Applications` folder, [open the app][macos-open], click the anchor menu bar icon, select "Open".
 | 
			
		||||
 | 
			
		||||
[macos-open]: https://support.apple.com/en-gb/guide/mac-help/mh40616/mac
 | 
			
		||||
 | 
			
		||||
### windows
 | 
			
		||||
 | 
			
		||||
Download `yarr-*-windows32.zip`, unzip it, open `yarr.exe`
 | 
			
		||||
Download `yarr-*-windows64.zip`, unzip it, open `yarr.exe`, click the anchor system tray icon, select "Open".
 | 
			
		||||
 | 
			
		||||
### linux
 | 
			
		||||
 | 
			
		||||
The Linux version doesn't come with the desktop environment integration.
 | 
			
		||||
For easy access on DE it is recommended to create a desktop menu entry by
 | 
			
		||||
by following the steps below:
 | 
			
		||||
 | 
			
		||||
    unzip -x yarr*.zip
 | 
			
		||||
    sudo mv yarr /usr/local/bin/yarr
 | 
			
		||||
    sudo nano /usr/local/share/applications/yarr.desktop
 | 
			
		||||
 | 
			
		||||
and pasting the content:
 | 
			
		||||
 | 
			
		||||
    [Desktop Entry]
 | 
			
		||||
    Name=yarr
 | 
			
		||||
    Exec=/usr/local/bin/yarr -open
 | 
			
		||||
    Icon=rss
 | 
			
		||||
    Type=Application
 | 
			
		||||
    Categories=Internet;
 | 
			
		||||
Download `yarr-*-linux64.zip`, unzip it, place `yarr` in `$HOME/.local/bin`
 | 
			
		||||
and run [the script](etc/install-linux.sh).
 | 
			
		||||
 | 
			
		||||
For self-hosting, see `yarr -h` for auth, tls & server configuration flags.
 | 
			
		||||
For building from source code, see [build.md](build.md)
 | 
			
		||||
 | 
			
		||||
## build
 | 
			
		||||
 | 
			
		||||
Install `Go >= 1.16` and `gcc`. Get the source code:
 | 
			
		||||
 | 
			
		||||
    git clone https://github.com/nkanaev/yarr.git
 | 
			
		||||
 | 
			
		||||
Then run one of the corresponding commands:
 | 
			
		||||
 | 
			
		||||
    # create an executable for the host os
 | 
			
		||||
    make build_macos    # -> _output/macos/yarr.app
 | 
			
		||||
    make build_linux    # -> _output/linux/yarr
 | 
			
		||||
    make build_windows  # -> _output/windows/yarr.exe
 | 
			
		||||
 | 
			
		||||
    # ... or start a dev server locally
 | 
			
		||||
    make serve          # starts a server at http://localhost:7070
 | 
			
		||||
 | 
			
		||||
    # ... or build a docker image
 | 
			
		||||
    docker build -t yarr .
 | 
			
		||||
For Fever API support, see [fever.md](fever.md).
 | 
			
		||||
 | 
			
		||||
## credits
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -6,6 +6,7 @@ import (
 | 
			
		||||
	"io"
 | 
			
		||||
	"io/fs"
 | 
			
		||||
	"io/ioutil"
 | 
			
		||||
	"log"
 | 
			
		||||
	"os"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
@@ -29,9 +30,18 @@ func Template(path string) *template.Template {
 | 
			
		||||
	if !found {
 | 
			
		||||
		tmpl = template.Must(template.New(path).Delims("{%", "%}").Funcs(template.FuncMap{
 | 
			
		||||
			"inline": func(svg string) template.HTML {
 | 
			
		||||
				svgfile, _ := FS.Open("graphicarts/" + svg)
 | 
			
		||||
				content, _ := ioutil.ReadAll(svgfile)
 | 
			
		||||
				svgfile.Close()
 | 
			
		||||
				svgfile, err := FS.Open("graphicarts/" + svg)
 | 
			
		||||
				// should never happen
 | 
			
		||||
				if err != nil {
 | 
			
		||||
					log.Fatal(err)
 | 
			
		||||
				}
 | 
			
		||||
				defer svgfile.Close()
 | 
			
		||||
 | 
			
		||||
				content, err := ioutil.ReadAll(svgfile)
 | 
			
		||||
				// should never happen
 | 
			
		||||
				if err != nil {
 | 
			
		||||
					log.Fatal(err)
 | 
			
		||||
				}
 | 
			
		||||
				return template.HTML(content)
 | 
			
		||||
			},
 | 
			
		||||
		}).ParseFS(FS, path))
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,4 @@
 | 
			
		||||
//go:build release
 | 
			
		||||
// +build release
 | 
			
		||||
 | 
			
		||||
package assets
 | 
			
		||||
@@ -8,6 +9,7 @@ import "embed"
 | 
			
		||||
//go:embed graphicarts
 | 
			
		||||
//go:embed javascripts
 | 
			
		||||
//go:embed stylesheets
 | 
			
		||||
//go:embed manifest.json
 | 
			
		||||
var embedded embed.FS
 | 
			
		||||
 | 
			
		||||
func init() {
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								src/assets/graphicarts/android/android-launchericon-144-144.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 5.3 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/graphicarts/android/android-launchericon-192-192.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 8.3 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/graphicarts/android/android-launchericon-48-48.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.4 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/graphicarts/android/android-launchericon-512-512.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 26 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/graphicarts/android/android-launchericon-72-72.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 2.3 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/graphicarts/android/android-launchericon-96-96.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 3.1 KiB  | 
@@ -1 +0,0 @@
 | 
			
		||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-chevron-down"><polyline points="6 9 12 15 18 9"></polyline></svg>
 | 
			
		||||
| 
		 Before Width: | Height: | Size: 269 B  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/graphicarts/favicon.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.6 KiB  | 
							
								
								
									
										9
									
								
								src/assets/graphicarts/favicon.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -0,0 +1,9 @@
 | 
			
		||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-anchor-favicon">
 | 
			
		||||
  <circle cx="12" cy="5" r="3" stroke-width="4" stroke="#ffffff"></circle>
 | 
			
		||||
  <line x1="12" y1="22" x2="12" y2="8" stroke-width="4" stroke="#ffffff"></line>
 | 
			
		||||
  <path d="M5 12H2a10 10 0 0 0 20 0h-3" stroke-width="4" stroke="#ffffff"></path>
 | 
			
		||||
 | 
			
		||||
  <circle cx="12" cy="5" r="3"></circle>
 | 
			
		||||
  <line x1="12" y1="22" x2="12" y2="8"></line>
 | 
			
		||||
  <path d="M5 12H2a10 10 0 0 0 20 0h-3"></path>
 | 
			
		||||
</svg>
 | 
			
		||||
| 
		 After Width: | Height: | Size: 603 B  | 
| 
		 Before Width: | Height: | Size: 103 KiB  | 
| 
		 Before Width: | Height: | Size: 2.2 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/graphicarts/ios/100.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 3.2 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/graphicarts/ios/1024.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 56 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/graphicarts/ios/114.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 3.7 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/graphicarts/ios/120.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 4.4 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/graphicarts/ios/128.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 4.8 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/graphicarts/ios/144.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 5.3 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/graphicarts/ios/152.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 5.6 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/graphicarts/ios/16.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 515 B  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/graphicarts/ios/167.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 7.0 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/graphicarts/ios/180.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 7.6 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/graphicarts/ios/192.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 8.3 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/graphicarts/ios/20.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 699 B  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/graphicarts/ios/256.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 11 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/graphicarts/ios/29.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 939 B  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/graphicarts/ios/32.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1010 B  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/graphicarts/ios/40.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.2 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/graphicarts/ios/50.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.6 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/graphicarts/ios/512.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 26 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/graphicarts/ios/57.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.8 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/graphicarts/ios/58.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.8 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/graphicarts/ios/60.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.8 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/graphicarts/ios/64.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 2.0 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/graphicarts/ios/72.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 2.3 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/graphicarts/ios/76.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 2.4 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/graphicarts/ios/80.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 2.5 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/graphicarts/ios/87.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 2.8 KiB  | 
@@ -1 +0,0 @@
 | 
			
		||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-list"><line x1="8" y1="6" x2="21" y2="6"></line><line x1="8" y1="12" x2="21" y2="12"></line><line x1="8" y1="18" x2="21" y2="18"></line><line x1="3" y1="6" x2="3.01" y2="6"></line><line x1="3" y1="12" x2="3.01" y2="12"></line><line x1="3" y1="18" x2="3.01" y2="18"></line></svg>
 | 
			
		||||
| 
		 Before Width: | Height: | Size: 482 B  | 
@@ -1 +0,0 @@
 | 
			
		||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-menu"><line x1="3" y1="12" x2="21" y2="12"></line><line x1="3" y1="6" x2="21" y2="6"></line><line x1="3" y1="18" x2="21" y2="18"></line></svg>
 | 
			
		||||
| 
		 Before Width: | Height: | Size: 346 B  | 
@@ -1 +0,0 @@
 | 
			
		||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-more-vertical"><circle cx="12" cy="12" r="1"></circle><circle cx="12" cy="5" r="1"></circle><circle cx="12" cy="19" r="1"></circle></svg>
 | 
			
		||||
| 
		 Before Width: | Height: | Size: 341 B  | 
@@ -1 +0,0 @@
 | 
			
		||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-settings"><circle cx="12" cy="12" r="3"></circle><path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z"></path></svg>
 | 
			
		||||
| 
		 Before Width: | Height: | Size: 1011 B  | 
@@ -1 +0,0 @@
 | 
			
		||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-trash-2"><polyline points="3 6 5 6 21 6"></polyline><path d="M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"></path><line x1="10" y1="11" x2="10" y2="17"></line><line x1="14" y1="11" x2="14" y2="17"></line></svg>
 | 
			
		||||
| 
		 Before Width: | Height: | Size: 448 B  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/graphicarts/windows11/LargeTile.scale-100.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 14 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/graphicarts/windows11/LargeTile.scale-125.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 19 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/graphicarts/windows11/LargeTile.scale-150.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 24 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/graphicarts/windows11/LargeTile.scale-200.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 32 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/graphicarts/windows11/LargeTile.scale-400.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 69 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/graphicarts/windows11/SmallTile.scale-100.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 2.3 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/graphicarts/windows11/SmallTile.scale-125.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 2.8 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/graphicarts/windows11/SmallTile.scale-150.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 3.3 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/graphicarts/windows11/SmallTile.scale-200.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 5.3 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/graphicarts/windows11/SmallTile.scale-400.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 13 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/graphicarts/windows11/SplashScreen.scale-100.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 15 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/graphicarts/windows11/SplashScreen.scale-125.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 20 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/graphicarts/windows11/SplashScreen.scale-150.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 25 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/graphicarts/windows11/SplashScreen.scale-200.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 34 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/graphicarts/windows11/SplashScreen.scale-400.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 75 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/graphicarts/windows11/Square150x150Logo.scale-100.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 5.6 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/graphicarts/windows11/Square150x150Logo.scale-125.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 8.0 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/graphicarts/windows11/Square150x150Logo.scale-150.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 8.2 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/graphicarts/windows11/Square150x150Logo.scale-200.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 14 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/graphicarts/windows11/Square150x150Logo.scale-400.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 31 KiB  | 
| 
		 After Width: | Height: | Size: 602 B  | 
| 
		 After Width: | Height: | Size: 715 B  | 
| 
		 After Width: | Height: | Size: 722 B  | 
| 
		 After Width: | Height: | Size: 13 KiB  | 
| 
		 After Width: | Height: | Size: 1.0 KiB  | 
| 
		 After Width: | Height: | Size: 1.1 KiB  | 
| 
		 After Width: | Height: | Size: 1.2 KiB  | 
| 
		 After Width: | Height: | Size: 1.4 KiB  | 
| 
		 After Width: | Height: | Size: 1.5 KiB  | 
| 
		 After Width: | Height: | Size: 1.5 KiB  | 
| 
		 After Width: | Height: | Size: 2.1 KiB  | 
| 
		 After Width: | Height: | Size: 2.3 KiB  | 
| 
		 After Width: | Height: | Size: 2.4 KiB  | 
| 
		 After Width: | Height: | Size: 2.8 KiB  | 
| 
		 After Width: | Height: | Size: 3.3 KiB  | 
| 
		 After Width: | Height: | Size: 602 B  | 
| 
		 After Width: | Height: | Size: 715 B  | 
| 
		 After Width: | Height: | Size: 722 B  | 
| 
		 After Width: | Height: | Size: 13 KiB  | 
| 
		 After Width: | Height: | Size: 1.0 KiB  | 
| 
		 After Width: | Height: | Size: 1.1 KiB  | 
| 
		 After Width: | Height: | Size: 1.2 KiB  | 
| 
		 After Width: | Height: | Size: 1.4 KiB  | 
| 
		 After Width: | Height: | Size: 1.5 KiB  |