Skip to content
This repository was archived by the owner on Dec 1, 2025. It is now read-only.

Commit 312c1b7

Browse files
authored
Merge pull request #14 from xeyossr/feat/search-navigation
- Versiyon bilgisi ldflags ile derlemeye eklendi - CLI flag yapısı iyileştirildi, deprecated flag bildirimi eklendi - Rofi ve TUI arayüzlerinde küçük hata düzeltmeleri ve stil geliştirmeleri - Makefile güncellendi, build/install süreçleri optimize edildi - AUR paket ve SRCINFO dosyaları güncellendi, desteklenen mimariler eklendi - Yeni 'Anime ara' seçeneği playAnimeLoop fonksiyonuna eklendi - install.sh scripti eklendi
2 parents d637457 + 4e22f57 commit 312c1b7

File tree

10 files changed

+221
-76
lines changed

10 files changed

+221
-76
lines changed

Makefile

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,18 @@ BINARY_NAME=anitr-cli
33
BUILD_DIR=./build
44
INSTALL_DIR=/usr/bin
55

6+
VERSION ?= $(shell git describe --tags --abbrev=0 2>/dev/null || echo "dev")
7+
8+
LDFLAGS=-ldflags="-X 'github.com/xeyossr/anitr-cli/internal/update.CurrentVersion=$(VERSION)'"
9+
610
mod-tidy:
711
$(GO) mod tidy
812

913
build: mod-tidy
10-
$(GO) build -o $(BUILD_DIR)/$(BINARY_NAME)
14+
$(GO) build $(LDFLAGS) -o $(BUILD_DIR)/$(BINARY_NAME)
1115

1216
run: build
13-
./$(BINARY_NAME)
17+
./$(BUILD_DIR)/$(BINARY_NAME)
1418

1519
install: build
1620
chmod +x $(BUILD_DIR)/$(BINARY_NAME)
@@ -19,4 +23,4 @@ install: build
1923
clean:
2024
rm -rf $(BUILD_DIR)
2125

22-
all: mod-tidy build install
26+
all: mod-tidy build install

README.md

Lines changed: 29 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<img src="https://raw.githubusercontent.com/xeyossr/anitr-cli/main/assets/anitr-preview.gif" alt="anitr-cli preview" width="600"/>
77

88
<p>
9-
9+
1010
[![Lisans: GPL3](https://img.shields.io/github/license/xeyossr/anitr-cli?style=for-the-badge&logo=opensourceinitiative&logoColor=white&label=Lisans)](https://github.com/xeyossr/anitr-cli/blob/main/LICENSE)
1111
[![Go Versiyon](https://img.shields.io/badge/Go-1.24+-blue?style=for-the-badge&logo=go&logoColor=white)](https://golang.org/dl/)
1212
[![Release](https://img.shields.io/github/v/release/xeyossr/anitr-cli?style=for-the-badge&logo=github&logoColor=white&label=Son%20Sürüm)](https://github.com/xeyossr/anitr-cli/releases/latest)
@@ -23,26 +23,33 @@
2323
- **AnimeCix ve OpenAnime Entegrasyonu**: Popüler anime platformlarından hızlı arama ve izleme imkanı.
2424
- **Fansub Seçimi**: OpenAnime üzerinden izlerken favori çeviri grubunuzu seçme özgürlüğü.
2525
- **Çoklu Arayüz Desteği**: Terminal tabanlı TUI ve minimalist grafik arayüz (Rofi UI) seçenekleri.
26-
- **Discord Rich Presence**: İzlediğiniz animeyi Discord profilinizde paylaşarak arkadaşlarınızla etkileşimde kalın.
26+
- **Discord Rich Presence**: İzlediğiniz animeyi Discord profilinizde paylaşın.
2727
- **Otomatik Güncelleme Kontrolü**: Uygulama her başlatıldığında yeni sürüm olup olmadığını kontrol eder.
2828

2929
---
3030

3131
## ⚡ Kurulum
3232

33-
### 🐧 Linux
34-
35-
#### Arch tabanlı dağıtımlar (AUR):
33+
### 🐧 Arch tabanlı dağıtımlar (AUR):
3634

3735
```bash
3836
yay -S anitr-cli
3937
```
38+
ya da
39+
```bash
40+
paru -S anitr-cli
41+
```
4042

41-
#### Diğer Linux dağıtımları:
43+
### 🐧 Diğer Linux dağıtımları:
4244

45+
```bash
46+
curl -sS https://raw.githubusercontent.com/xeyossr/anitr-cli/main/install.sh | bash
47+
```
48+
ya da
4349
```bash
4450
git clone https://github.com/xeyossr/anitr-cli.git
45-
cd anitr-cli
51+
cd anitr-cli
52+
git fetch --tags
4653
make install
4754
```
4855

@@ -80,29 +87,29 @@ make install
8087
yay -Sy anitr-cli
8188
```
8289
- **Manuel kurulum yaptıysanız:**
83-
Depoyu güncelleyip tekrar `make install` komutunu çalıştırın.
84-
85-
---
86-
87-
### 🪟 Windows
88-
89-
Bu proje Linux için geliştirilmiştir. Windows kullanıcıları için [anitr-cli-windows](https://github.com/mstsecurity/anitr-cli-windows) forkunu kullanabilirsiniz.
90+
```bash
91+
curl -sS https://raw.githubusercontent.com/xeyossr/anitr-cli/main/install.sh | bash
92+
```
9093

9194
---
9295

9396
## 🚀 Kullanım
9497

9598
```bash
96-
anitr-cli [bayraklar]
99+
anitr-cli [alt komut] [bayraklar]
97100
```
98101

99-
**Bayraklar:**
100-
101-
- `--disable-rpc` Discord Rich Presence özelliğini kapatır.
102-
- `--rofi` Rofi arayüzü ile başlatır.
103-
- `--rofi-flags <string>` Rofi için ek parametreler.
104-
- `--version` Sürüm bilgisini gösterir.
105-
- `-h, --help` Yardım menüsü.
102+
Bayraklar:
103+
--disable-rpc Discord Rich Presence özelliğini kapatır
104+
--version, -v Sürüm bilgisini gösterir
105+
--help, -h Yardım menüsünü gösterir
106+
--rofi [Kullanımdan kaldırıldı] Yerine 'rofi' alt komutunu kullanın
107+
108+
Alt komutlar:
109+
rofi Rofi arayüzü ile başlatır
110+
-f, --rofi-flags Rofi’ye özel parametreler (örn: --rofi-flags="-theme mytheme")
111+
tui Terminal arayüzü ile başlatır
112+
```
106113
107114
---
108115

aur/.SRCINFO

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,19 @@
11
pkgbase = anitr-cli
2-
pkgdesc = 💫 Terminalden Türkçe anime izleme aracı
3-
pkgver = 4.3.0
2+
pkgdesc = 🚀 Terminalde Türkçe altyazılı anime izleme ve arama aracı
3+
pkgver = 4.3.1
44
pkgrel = 1
55
url = https://github.com/xeyossr/anitr-cli
66
arch = x86_64
7+
arch = armv7h
8+
arch = aarch64
9+
arch = i686
710
license = GPL3
811
makedepends = go
912
makedepends = git
1013
depends = mpv
11-
optdepends = rofi: for --rofi mode (recommended for X11 users)
12-
optdepends = rofi-wayland: for --rofi mode (recommended for Wayland users)
13-
provides = anitr-cli
14-
conflicts = anitr-cli
15-
source = git+https://github.com/xeyossr/anitr-cli.git#tag=v4.3.0
14+
optdepends = rofi: for rofi ui (X11 users)
15+
optdepends = rofi-wayland: for rofi ui (recommended for Wayland users)
16+
source = git+https://github.com/xeyossr/anitr-cli.git#tag=v4.3.1
1617
sha256sums = SKIP
1718

1819
pkgname = anitr-cli

aur/PKGBUILD

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,31 @@
11
# Maintainer: kamisaki
2-
# Description: 💫 Terminalden Türkçe anime izleme aracı
2+
# Description: 🚀 Terminalde Türkçe altyazılı anime izleme ve arama aracı
33
pkgname=anitr-cli
4-
pkgver=4.3.0
4+
pkgver=4.3.1
55
pkgrel=1
6-
pkgdesc="💫 Terminalden Türkçe anime izleme aracı"
7-
arch=('x86_64')
6+
pkgdesc="🚀 Terminalde Türkçe altyazılı anime izleme ve arama aracı"
7+
arch=('x86_64' 'armv7h' 'aarch64' 'i686')
88
url="https://github.com/xeyossr/anitr-cli"
99
license=('GPL3')
1010
depends=('mpv')
1111
makedepends=('go' 'git')
1212

1313
optdepends=(
14-
'rofi: for --rofi mode (recommended for X11 users)'
15-
'rofi-wayland: for --rofi mode (recommended for Wayland users)'
14+
'rofi: for rofi ui (X11 users)'
15+
'rofi-wayland: for rofi ui (recommended for Wayland users)'
1616
)
1717

18-
provides=("${pkgname}")
19-
conflicts=("${pkgname}")
2018
source=(
2119
"git+https://github.com/xeyossr/anitr-cli.git#tag=v${pkgver}"
2220
)
2321
sha256sums=('SKIP')
2422

2523
build() {
2624
cd "$srcdir/${pkgname}"
27-
go mod tidy
28-
go build -o anitr-cli
25+
go build -ldflags "-X github.com/xeyossr/anitr-cli/internal/update.CurrentVersion=v${pkgver}" -o anitr-cli
2926
}
3027

3128
package() {
3229
cd "$srcdir/${pkgname}"
33-
install -Dm755 "${srcdir}/${pkgname}/anitr-cli" "${pkgdir}/usr/bin/${pkgname}"
34-
}
30+
install -Dm755 anitr-cli "${pkgdir}/usr/bin/${pkgname}"
31+
}

install.sh

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
#!/usr/bin/env bash
2+
set -euo pipefail
3+
4+
REPO_URL="https://github.com/xeyossr/anitr-cli"
5+
INSTALL_DIR="/usr/bin"
6+
CLONE_DIR="$(mktemp -d)"
7+
BINARY_NAME="anitr-cli"
8+
9+
echo -e "\n🚀 anitr-cli kurulumu başlıyor...\n"
10+
11+
# Gerekli araçları kontrol et
12+
for cmd in git go; do
13+
if ! command -v "$cmd" &>/dev/null; then
14+
echo "❌ '$cmd' yüklü değil, lütfen kurun."
15+
exit 1
16+
fi
17+
done
18+
19+
# Make yüklü mü
20+
HAS_MAKE=0
21+
if command -v make &>/dev/null && [[ -f Makefile ]]; then
22+
HAS_MAKE=1
23+
fi
24+
25+
echo "📥 Repo klonlanıyor..."
26+
git clone "$REPO_URL" "$CLONE_DIR" &>/dev/null
27+
cd "$CLONE_DIR"
28+
29+
# En son tag'a geçiş yapmaya çalış
30+
if git fetch --tags &>/dev/null && git describe --tags --abbrev=0 &>/dev/null; then
31+
LATEST_TAG=$(git describe --tags --abbrev=0)
32+
echo "🔖 Sürüm: $LATEST_TAG"
33+
git checkout "$LATEST_TAG" &>/dev/null
34+
else
35+
echo "⚠️ Tag bulunamadı, 'main' dalı kullanılacak."
36+
fi
37+
38+
echo "⚙️ Derleniyor ve kuruluyor..."
39+
40+
if [[ "$HAS_MAKE" -eq 1 ]]; then
41+
if [[ $EUID -ne 0 ]]; then
42+
sudo make install &>/dev/null
43+
else
44+
make install &>/dev/null
45+
fi
46+
else
47+
VERSION=$(git describe --tags --abbrev=0 2>/dev/null || echo "dev")
48+
go build -ldflags="-X 'github.com/xeyossr/anitr-cli/internal/update.CurrentVersion=$VERSION'" -o "$BINARY_NAME"
49+
if [[ $EUID -ne 0 ]]; then
50+
sudo install -Dm755 "$BINARY_NAME" "$INSTALL_DIR/$BINARY_NAME"
51+
else
52+
install -Dm755 "$BINARY_NAME" "$INSTALL_DIR/$BINARY_NAME"
53+
fi
54+
fi
55+
56+
echo -e "\n✅ Kurulum başarılı: $INSTALL_DIR/$BINARY_NAME"
57+
58+
echo -n "📌 Versiyon: "
59+
"$INSTALL_DIR/$BINARY_NAME" --version || echo "Bilgi alınamadı."
60+
61+
echo -e "\n🧹 Geçici dosyalar temizleniyor..."
62+
rm -rf "$CLONE_DIR"
63+
64+
echo "🎉 Kurulum tamamlandı.\n"

internal/flags/flags.go

Lines changed: 51 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,59 @@ func NewFlagsCmd() (*cobra.Command, *Flags) {
1515
f := &Flags{}
1616

1717
cmd := &cobra.Command{
18-
Use: "anitr-cli",
19-
Short: "💫 Terminalden Türkçe anime izleme aracı",
18+
Use: "anitr-cli",
19+
Short: "🚀 Terminalde Türkçe altyazılı anime izleme aracı ",
20+
SilenceUsage: true,
21+
SilenceErrors: true,
22+
DisableAutoGenTag: true,
23+
CompletionOptions: cobra.CompletionOptions{
24+
DisableDefaultCmd: true,
25+
},
2026
}
2127

22-
cmd.PersistentFlags().BoolVar(&f.DisableRPC, "disable-rpc", false, "Discord Rich Presence özelliğini devre dışı bırakır.")
23-
cmd.PersistentFlags().BoolVar(&f.PrintVersion, "version", false, "Versiyon bilgisi.")
24-
cmd.PersistentFlags().BoolVar(&f.RofiMode, "rofi", false, "Rofi arayüzü ile başlatır.")
25-
cmd.PersistentFlags().StringVar(&f.RofiFlags, "rofi-flags", "", "Rofi için flag'ler")
28+
// Global flagler
29+
cmd.PersistentFlags().BoolVar(&f.DisableRPC, "disable-rpc", false,
30+
"Discord Rich Presence desteğini devre dışı bırakır.")
31+
cmd.PersistentFlags().BoolVarP(&f.PrintVersion, "version", "v", false,
32+
"Uygulamanın sürüm bilgisini yazdırır.")
33+
34+
// DEPRECATED: --rofi flag
35+
cmd.PersistentFlags().BoolVarP(&f.RofiMode, "rofi", "r", false,
36+
"[DEPRECATED] --rofi seçeneği kullanımdan kaldırıldı. Lütfen 'rofi' alt komutunu kullanın.")
37+
_ = cmd.PersistentFlags().MarkDeprecated("rofi", "Bu bayrak artık kullanılmıyor. Yerine 'rofi' alt komutunu kullanın.")
38+
39+
// rofi alt komutu
40+
rofiCmd := &cobra.Command{
41+
Use: "rofi",
42+
Short: "🔹 Rofi arayüzüyle başlatır",
43+
Long: `Uygulamayı rofi arayüzü ile başlatır.
44+
45+
--rofi-flags bayrağı ile Rofi'ye özel parametreler verilebilir.`,
46+
Run: func(cmd *cobra.Command, args []string) {
47+
f.RofiMode = true
48+
},
49+
SilenceUsage: true,
50+
SilenceErrors: true,
51+
}
52+
53+
rofiCmd.Flags().StringVarP(&f.RofiFlags, "rofi-flags", "f", "",
54+
"Rofi'ye aktarılacak ek parametreler (örnek: --rofi-flags='-theme mytheme')")
55+
56+
cmd.AddCommand(rofiCmd)
57+
58+
// tui alt komutu
59+
tuiCmd := &cobra.Command{
60+
Use: "tui",
61+
Short: "🔹 Terminal (TUI) arayüzüyle başlatır",
62+
Long: "Uygulamayı terminal arayüzü (TUI) ile başlatır.",
63+
Run: func(cmd *cobra.Command, args []string) {
64+
f.RofiMode = false
65+
},
66+
SilenceUsage: true,
67+
SilenceErrors: true,
68+
}
69+
70+
cmd.AddCommand(tuiCmd)
2671

2772
return cmd, f
2873
}

internal/ui/rofi/rofi.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,10 @@ func isRofiExist() error {
2222
func SelectionList(params internal.UiParams) (string, error) {
2323
err := isRofiExist()
2424
if err != nil {
25-
return "", errors.New("-rofi modunun çalışması için rofi'nin sisteminize yüklü olması gerekmektedir")
25+
return "", errors.New("rofi modunun çalışması için rofi'nin sisteminize yüklü olması gerekmektedir")
2626
}
2727

28-
args := []string{"-dmenu", "-p", params.Label}
28+
args := []string{"-dmenu", "-p", "anitr-cli", "-mesg", params.Label}
2929

3030
if params.RofiFlags != nil {
3131
flags := strings.Split(*params.RofiFlags, " ")
@@ -52,10 +52,10 @@ func SelectionList(params internal.UiParams) (string, error) {
5252
func InputFromUser(params internal.UiParams) (string, error) {
5353
err := isRofiExist()
5454
if err != nil {
55-
return "", errors.New("-rofi modunun çalışması için rofi'nin sisteminize yüklü olması gerekmektedir")
55+
return "", errors.New("rofi modunun çalışması için rofi'nin sisteminize yüklü olması gerekmektedir")
5656
}
5757

58-
args := []string{"-dmenu", "-p", params.Label}
58+
args := []string{"-dmenu", "-p", "anitr-cli", "-mesg", params.Label}
5959

6060
if params.RofiFlags != nil {
6161
flags := strings.Split(*params.RofiFlags, " ")

internal/ui/tui/tui.go

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,6 @@ var (
2121
highlightColor = "#e45cc0"
2222
filterInputFg = "#8bb27f"
2323
filterCursorFg = "#c4b48b"
24-
titleFg = "#c4b48b"
25-
titleBg = "#2a2c36"
2624
inputPromptFg = "#c4b48b"
2725
inputTextFg = "#aabbcc"
2826
inputCursorFg = "#c4b48b"
@@ -108,9 +106,6 @@ func NewSelectionListModel(params internal.UiParams) SelectionListModel {
108106

109107
titleStyle := lipgloss.NewStyle().
110108
Align(lipgloss.Center).
111-
Padding(0, 2).
112-
Background(lipgloss.Color(titleBg)).
113-
Foreground(lipgloss.Color(titleFg)).
114109
Bold(true)
115110

116111
l.Title = titleStyle.Render(params.Label)

internal/update/version.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,4 @@ import "fmt"
55
var GithubRepo string = "xeyossr/anitr-cli"
66
var githubApi string = fmt.Sprintf("https://api.github.com/repos/%s/releases/latest", GithubRepo)
77
var repoLink string = fmt.Sprintf("https://github.com/%s", GithubRepo)
8-
var CurrentVersion string = "v4.3.0"
8+
var CurrentVersion string = "dev"

0 commit comments

Comments
 (0)