Skip to content

Commit 6517829

Browse files
authored
Merge pull request #35 from nini22P/dev
v1.4.0
2 parents cafefd4 + 09f32c2 commit 6517829

102 files changed

Lines changed: 3499 additions & 1687 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/ci.yml

Lines changed: 60 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1-
name: CI
1+
name: ci
22
on:
33
push:
44
branches:
55
- main
6+
- dev
67
paths-ignore:
78
- README.md
89
- README_CN.md
@@ -15,7 +16,6 @@ on:
1516

1617
jobs:
1718
build-windows:
18-
name: Build Windows
1919
runs-on: windows-latest
2020
steps:
2121
- name: Clone repository
@@ -31,26 +31,40 @@ jobs:
3131
- name: Create ZIP archive
3232
run: |
3333
# Create a directory to hold the files
34-
mkdir Iris
35-
# Move the build output to the Iris directory
36-
Move-Item -Path "build\windows\x64\runner\Release\*" -Destination "Iris" -Force
34+
mkdir IRIS
35+
# Copy the build output to the IRIS directory
36+
Copy-Item -Path "build\windows\x64\runner\Release\*" -Destination "IRIS" -Force
3737
# Create a ZIP file
38-
Compress-Archive -Path "Iris" -DestinationPath "Iris-windows.zip"
38+
Compress-Archive -Path "IRIS" -DestinationPath "IRIS-windows.zip"
3939
- name: Upload artifact
4040
uses: actions/upload-artifact@v4
4141
with:
42-
name: Iris-windows
43-
path: Iris-windows.zip
44-
- name: Rename ZIP archive
45-
run: Rename-Item -Path "Iris-windows.zip" -NewName "Iris_windows.zip"
46-
- name: Upload artifact
42+
name: IRIS-windows.zip
43+
path: IRIS-windows.zip
44+
- name: Remove updater
45+
run: Remove-Item -Path build\windows\x64\runner\Release\iris-updater.bat -Force
46+
- name: Create installer
47+
run: iscc inno.iss
48+
- name: Upload installer
49+
uses: actions/upload-artifact@v4
50+
with:
51+
name: IRIS-windows-installer.exe
52+
path: build\windows\x64\runner\Release\IRIS-windows-installer.exe
53+
- name: Clean up
54+
run: Remove-Item -Path build\windows\x64\runner\Release\ -Recurse -Force
55+
- name: Build store msix
56+
run: dart run msix:build --store true
57+
- name: Remove updater
58+
run: Remove-Item -Path build\windows\x64\runner\Release\iris-updater.bat -Force
59+
- name: Pack store msix
60+
run: dart run msix:pack --store true --output-name IRIS-windows-store
61+
- name: Upload msix
4762
uses: actions/upload-artifact@v4
4863
with:
49-
name: Iris_windows
50-
path: Iris_windows.zip
64+
name: IRIS-windows-store.msix
65+
path: build\windows\x64\runner\Release\IRIS-windows-store.msix
5166

5267
build-android:
53-
name: Build Android
5468
runs-on: ubuntu-latest
5569
steps:
5670
- name: Clone repository
@@ -78,32 +92,33 @@ jobs:
7892
- name: Build Flutter application for Android
7993
run: flutter build apk --split-per-abi
8094
- name: Rename armeabi-v7a APK
81-
run: mv build/app/outputs/flutter-apk/app-armeabi-v7a-release.apk Iris-android-armeabi-v7a.apk
95+
run: mv build/app/outputs/flutter-apk/app-armeabi-v7a-release.apk IRIS-android-armeabi-v7a.apk
8296
- name: Rename arm64-v8a APK
83-
run: mv build/app/outputs/flutter-apk/app-arm64-v8a-release.apk Iris-android-arm64-v8a.apk
97+
run: mv build/app/outputs/flutter-apk/app-arm64-v8a-release.apk IRIS-android-arm64-v8a.apk
8498
- name: Rename x86_64 APK
85-
run: mv build/app/outputs/flutter-apk/app-x86_64-release.apk Iris-android-x86_64.apk
99+
run: mv build/app/outputs/flutter-apk/app-x86_64-release.apk IRIS-android-x86_64.apk
86100
- name: Upload armeabi-v7a APK
87101
uses: actions/upload-artifact@v4
88102
with:
89-
name: Iris-android-armeabi-v7a
90-
path: Iris-android-armeabi-v7a.apk
103+
name: IRIS-android-armeabi-v7a.apk
104+
path: IRIS-android-armeabi-v7a.apk
91105
- name: Upload arm64-v8a APK
92106
uses: actions/upload-artifact@v4
93107
with:
94-
name: Iris-android-arm64-v8a
95-
path: Iris-android-arm64-v8a.apk
108+
name: IRIS-android-arm64-v8a.apk
109+
path: IRIS-android-arm64-v8a.apk
96110
- name: Upload x86_64 APK
97111
uses: actions/upload-artifact@v4
98112
with:
99-
name: Iris-android-x86_64
100-
path: Iris-android-x86_64.apk
113+
name: IRIS-android-x86_64.apk
114+
path: IRIS-android-x86_64.apk
101115

102116
release:
103-
name: Release
104-
if: ${{ github.ref == 'refs/heads/main' }}
117+
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
105118
runs-on: ubuntu-latest
106-
needs: [build-windows, build-android]
119+
needs:
120+
- build-windows
121+
- build-android
107122
steps:
108123
- name: Checkout
109124
uses: actions/checkout@v4
@@ -114,34 +129,39 @@ jobs:
114129
cmd: yq '.version' 'pubspec.yaml'
115130
- name: Print version
116131
run: echo ${{ steps.yq.outputs.result }}
117-
- name: Create Tag
118-
id: create_tag
132+
- name: Prepare tag name
133+
id: tag_name
119134
run: |
120135
VERSION="${{ steps.yq.outputs.result }}"
121-
TAG_NAME="v${VERSION%%+*}"
136+
TAG_NAME="v${VERSION}"
122137
echo "TAG_NAME=$TAG_NAME" >> "$GITHUB_OUTPUT"
123-
echo "Creating new tag $TAG_NAME..."
124-
git tag "$TAG_NAME"
125-
git push origin "$TAG_NAME"
138+
- name: Check tag
139+
uses: mukunku/tag-exists-action@v1.6.0
140+
id: check-tag
141+
with:
142+
tag: ${{ steps.tag_name.outputs.TAG_NAME }}
126143
- name: Eextract log
127-
run: python extract_log.py ${{ steps.create_tag.outputs.TAG_NAME }}
144+
if: steps.check-tag.outputs.exists == 'false'
145+
run: python extract_log.py ${{ steps.tag_name.outputs.TAG_NAME }}
128146
- name: Download artifact
147+
if: steps.check-tag.outputs.exists == 'false'
129148
uses: actions/download-artifact@v4
130149
with:
131150
path: artifacts
132151
merge-multiple: true
133152
- name: Release
153+
if: steps.check-tag.outputs.exists == 'false'
134154
uses: softprops/action-gh-release@v2
135155
env:
136156
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
137157
with:
138-
tag_name: ${{ steps.create_tag.outputs.TAG_NAME }}
139-
body_path: CHANGELOG_${{ steps.create_tag.outputs.TAG_NAME }}.md
158+
tag_name: ${{ steps.tag_name.outputs.TAG_NAME }}
159+
body_path: CHANGELOG_${{ steps.tag_name.outputs.TAG_NAME }}.md
140160
draft: false
141161
prerelease: false
142162
files: |
143-
artifacts/Iris-windows.zip
144-
artifacts/Iris_windows.zip
145-
artifacts/Iris-android-armeabi-v7a.apk
146-
artifacts/Iris-android-arm64-v8a.apk
147-
artifacts/Iris-android-x86_64.apk
163+
artifacts/IRIS-windows.zip
164+
artifacts/IRIS-windows-installer.exe
165+
artifacts/IRIS-android-armeabi-v7a.apk
166+
artifacts/IRIS-android-arm64-v8a.apk
167+
artifacts/IRIS-android-x86_64.apk

.gitignore

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,4 +44,7 @@ app.*.map.json
4444

4545
# freezed & json_serializable generated files
4646
**/*.freezed.dart
47-
**/*.g.dart
47+
**/*.g.dart
48+
49+
# l10n
50+
lib/l10n/app_localizations*.dart

CHANGELOG.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,20 @@
1+
## v1.4.0
2+
3+
### Changelog
4+
5+
* Supports FTP storage
6+
* Supports adding local folders to the storage list
7+
* Storage list support remote disk and network shortcuts on Windows
8+
* Add Windows installer
9+
10+
### 更新日志
11+
12+
* 支持 FTP 存储
13+
* 支持添加本地文件夹到存储列表
14+
* Windows 版本存储列表支持远程磁盘和网络快捷方式
15+
* 添加 Windows 版本安装器
16+
17+
118
## v1.3.4
219

320
### Changelog

PRIVACY.md

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
# IRIS Privacy Policy
2+
3+
**Last Updated:** June 7, 2025
4+
5+
Thank you for using IRIS ("the Application"). We are committed to protecting your privacy. This Privacy Policy explains how we handle information in connection with your use of the Application.
6+
7+
Please read this Privacy Policy carefully before using the Application. By using the Application, you agree to the terms of this policy.
8+
9+
### Information We Collect
10+
11+
To provide and improve our services, the Application collects the following types of information:
12+
13+
1. **Information You Provide**
14+
15+
* **Network Storage Credentials**: When you configure access to your network storage (like WebDAV), you will be asked to provide connection details such as server address, username, and password.
16+
* **Online Video Links**: When you use the "Open Link" feature, you provide the URL for the video.
17+
2. **Information We Collect Automatically**
18+
19+
* **Playback History and Preferences**: To enhance your experience, the Application locally stores your playback history (including playback progress) and personal preferences (such as playback speed, volume, and theme mode) on your device.
20+
21+
### How We Use Your Information
22+
23+
We strictly adhere to the principles of lawfulness, legitimacy, and necessity in collecting and using your information. This information is used solely to implement product features, specifically to:
24+
25+
* Access and play media files from your local device or your configured network storage (like WebDAV).
26+
* Stream and play videos from online URLs you provide.
27+
* Remember your playback progress to allow you to resume watching.
28+
* Save your settings and preferences for a personalized experience.
29+
* Check for application updates to provide you with the latest features and bug fixes.
30+
31+
### Information Storage and Security
32+
33+
We place great importance on the security of your information.
34+
35+
* **Storage Location**: All your personal data, including WebDAV credentials, playback history, and application settings, is **stored only locally on your device**. We do not upload this information to any external servers.
36+
* **Security Measures**: We use industry-standard security technologies to protect sensitive information stored on your device from unauthorized access, use, or disclosure.
37+
38+
### Information Sharing and Disclosure
39+
40+
We do not sell, trade, or otherwise transfer your personally identifiable information to outside parties. All data is stored locally on your device.
41+
42+
### Children's Privacy
43+
44+
The Application is not intended for use by children under the age of 13. We do not knowingly collect personally identifiable information from children under 13.
45+
46+
### Changes to This Privacy Policy
47+
48+
We may update our Privacy Policy from time to time. Any changes will be posted on this page, and we encourage you to review this policy periodically for any updates. Your continued use of the Application after we post any modifications will constitute your acknowledgment of the changes and your consent to abide and be bound by the modified Privacy Policy.
49+
50+
### Contact Us
51+
52+
If you have any questions or suggestions about this Privacy Policy, please feel free to contact us by creating an issue on our GitHub page:
53+
54+
* [https://github.com/nini22P/iris/issues](https://github.com/nini22P/iris/issues)

README.md

Lines changed: 57 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -1,81 +1,86 @@
11
<img height="100px" width="100px" alt="icon" src="./assets/images/icon.svg"/>
22

3-
# Iris - A lightweight video player
3+
# IRIS - A lightweight video player
44

5-
![ci](https://github.com/nini22P/Iris/actions/workflows/ci.yml/badge.svg)
5+
![ci](https://github.com/nini22P/iris/actions/workflows/ci.yml/badge.svg)
66
<a href="https://afdian.com/a/nini22P"><img alt="Afdian" style="height: 30px;" src="https://pic1.afdiancdn.com/static/img/welcome/button-sponsorme.png"></a>
77
[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/nini22p)
88

99
English | [中文](./README_CN.md)
1010

1111
## Features
1212

13-
- [x] Base on [Media Kit](https://github.com/media-kit/media-kit) | [FVP](https://github.com/wang-bin/fvp), supports multiple video formats
14-
- [x] Local storage and WebDAV support
15-
- [x] Switchable subtitle and audio track
16-
- [x] Playback queue support for random and repeat
17-
- [x] Comprehensive gesture support
13+
- [X] Base on [Media Kit](https://github.com/media-kit/media-kit) | [FVP](https://github.com/wang-bin/fvp), supports multiple video formats
14+
- [X] Local storage, WebDAV and FTP support
15+
- [X] Switchable subtitle and audio track
16+
- [X] Playback queue support for random and repeat
17+
- [X] Comprehensive gesture support
1818

1919
## Download
2020

2121
### Windows
22-
- [Iris-windows.zip](https://github.com/nini22P/Iris/releases/latest/download/Iris-windows.zip)
22+
23+
- [IRIS-windows-installer.exe](https://github.com/nini22P/iris/releases/latest/download/IRIS-windows-installer.exe)
24+
- [IRIS-windows.zip](https://github.com/nini22P/iris/releases/latest/download/IRIS-windows.zip)
2325

2426
### Android
25-
| Architecture | Download Link |
26-
|-------------------|-------------------------------------------------------------------------|
27-
| arm64-v8a | [Iris-android-arm64-v8a.apk](https://github.com/nini22P/Iris/releases/latest/download/Iris-android-arm64-v8a.apk) |
28-
| armeabi-v7a | [Iris-android-armeabi-v7a.apk](https://github.com/nini22P/Iris/releases/latest/download/Iris-android-armeabi-v7a.apk) |
29-
| x86_64 | [Iris-android-x86_64.apk](https://github.com/nini22P/Iris/releases/latest/download/Iris-android-x86_64.apk) |
27+
28+
| Architecture | Download Link |
29+
| ------------ | ------------------------------------------------------------------------------------------------------------------ |
30+
| arm64-v8a | [IRIS-android-arm64-v8a.apk](https://github.com/nini22P/iris/releases/latest/download/IRIS-android-arm64-v8a.apk) |
31+
| armeabi-v7a | [IRIS-android-armeabi-v7a.apk](https://github.com/nini22P/iris/releases/latest/download/IRIS-android-armeabi-v7a.apk) |
32+
| x86_64 | [IRIS-android-x86_64.apk](https://github.com/nini22P/iris/releases/latest/download/IRIS-android-x86_64.apk) |
3033

3134
## Keyboard and Gesture Controls
3235

3336
### Keyboard Controls
34-
| Key | Description |
35-
|----------------------|------------------------------------------|
36-
| `Space` | Play / Pause / Select file |
37-
| `Arrow Left` | Fast backward 10 seconds |
38-
| `Arrow Right` | Fast forward 10 seconds |
39-
| `Arrow Up` | Volume up |
40-
| `Arrow Down` | Volume down |
41-
| `Ctrl + Arrow Left` | Previous |
42-
| `Ctrl + Arrow Right` | Next |
43-
| `Ctrl + X` | Shuffle |
44-
| `Ctrl + R` | Repeat |
45-
| `Ctrl + V` | Video zoom |
46-
| `Ctrl + M` | Volume mute |
47-
| `S` | Subtitles and audio tracks |
48-
| `P` | Play queue |
49-
| `F` | Storages |
50-
| `Ctrl + O` | Open file |
51-
| `Ctrl + L` | Open link |
52-
| `Ctrl + C` | Close currently media file |
53-
| `Ctrl + H` | Play history |
54-
| `Ctrl + P` | Settings |
55-
| `+` | Step forward |
56-
| `-` | Step backward |
37+
38+
| Key | Description |
39+
| ---------------------- | -------------------------------------------------- |
40+
| `Space` | Play / Pause / Select file |
41+
| `Arrow Left` | Fast backward 10 seconds |
42+
| `Arrow Right` | Fast forward 10 seconds |
43+
| `Arrow Up` | Volume up |
44+
| `Arrow Down` | Volume down |
45+
| `Ctrl + Arrow Left` | Previous |
46+
| `Ctrl + Arrow Right` | Next |
47+
| `Ctrl + X` | Shuffle |
48+
| `Ctrl + R` | Repeat |
49+
| `Ctrl + V` | Video zoom |
50+
| `Ctrl + M` | Volume mute |
51+
| `S` | Subtitles and audio tracks |
52+
| `P` | Play queue |
53+
| `F` | Storages |
54+
| `Ctrl + O` | Open file |
55+
| `Ctrl + L` | Open link |
56+
| `Ctrl + C` | Close currently media file |
57+
| `Ctrl + H` | Play history |
58+
| `Ctrl + P` | Settings |
59+
| `+` | Step forward |
60+
| `-` | Step backward |
5761
| `Enter` | Enter full screen / Exit full screen / Select file |
58-
| `F11` | Enter full screen / Exit full screen |
59-
| `Esc` | Exit current Menu / Go back / Exit full screen |
60-
| `F10` | Toggle always on top |
61-
| `Alt + X` | Exit application |
62+
| `F11` | Enter full screen / Exit full screen |
63+
| `Esc` | Exit current Menu / Go back / Exit full screen |
64+
| `F10` | Toggle always on top |
65+
| `Alt + X` | Exit application |
6266

6367
### Gesture Controls
64-
| Gesture | Description |
65-
|---------------------------------|------------------------------------------|
66-
| Tap | Select an item or open a menu |
67-
| Double tap center | Play / Pause |
68-
| Double tap left side | Fast backward 10 seconds |
69-
| Double tap right side | Fast forward 10 seconds |
70-
| Swipe left / right | Adjust playback progress |
71-
| Swipe up / down on left side | Adjust screen brightness |
72-
| Swipe up / down on right side | Adjust device volume |
73-
| Long press | Start speed playback |
74-
| Long press and swipe left / right | Adjust speed playback speed |
68+
69+
| Gesture | Description |
70+
| --------------------------------- | ----------------------------- |
71+
| Tap | Select an item or open a menu |
72+
| Double tap center | Play / Pause |
73+
| Double tap left side | Fast backward 10 seconds |
74+
| Double tap right side | Fast forward 10 seconds |
75+
| Swipe left / right | Adjust playback progress |
76+
| Swipe up / down on left side | Adjust screen brightness |
77+
| Swipe up / down on right side | Adjust device volume |
78+
| Long press | Start speed playback |
79+
| Long press and swipe left / right | Adjust speed playback speed |
7580

7681
## Contribution
7782

78-
Contributions of any kind are welcome! If you have suggestions, bug reports, or want to add new features, please submit an [issue](https://github.com/nini22P/Iris/issues) or directly submit a Pull Request.
83+
Contributions of any kind are welcome! If you have suggestions, bug reports, or want to add new features, please submit an [issue](https://github.com/nini22P/iris/issues) or directly submit a Pull Request.
7984

8085
## Sponsorship
8186

0 commit comments

Comments
 (0)