Skip to content

Commit

Permalink
Merge branch 'feature/miria_v2' into fix-pushable-listview
Browse files Browse the repository at this point in the history
  • Loading branch information
shiosyakeyakini-info authored Jul 14, 2024
2 parents 117c934 + 690f997 commit 4a11c42
Show file tree
Hide file tree
Showing 461 changed files with 40,524 additions and 19,439 deletions.
3 changes: 3 additions & 0 deletions .fvmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"flutter": "3.22.2"
}
2 changes: 2 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
*.freezed.dart linguist-generated=true
*.g.dart linguist-generated=true
6 changes: 5 additions & 1 deletion .github/workflows/dart_test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ jobs:
- uses: actions/checkout@v4
- uses: dart-lang/setup-dart@v1

- run: dart format --output=none --set-exit-if-changed .

- name: Install Flutter
uses: subosito/flutter-action@v2
with:
Expand All @@ -35,10 +37,12 @@ jobs:
- name: Run flutter pub get
run: flutter pub get

- run: flutter analyze --fatal-infos

- name: Run flutter test with coverage
run: flutter test --coverage --coverage-path=~/coverage/lcov.info

- uses: codecov/codecov-action@v3
with:
token: ${{secrets.CODECOV_TOKEN}}
file: ~/coverage/lcov.info
file: ~/coverage/lcov.info
2 changes: 1 addition & 1 deletion .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ jobs:
- uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: '11'
java-version: '17'
cache: 'gradle'


Expand Down
54 changes: 54 additions & 0 deletions .github/workflows/snap_deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@

name: デプロイ(snap)
on:
workflow_dispatch:
release:
types: [published]

permissions:
contents: write

jobs:
build:
name: ビルド(Snap)
runs-on: ubuntu-latest
strategy:
matrix:
platform: [amd64, arm64]
outputs:
snap: ${{ steps.snapcraft.outputs.snap }}
steps:
- name: Checkout Code
uses: actions/checkout@v4

- name: Setup QEMU
uses: docker/setup-qemu-action@v3

- name: Build Snap
id: snapcraft
uses: diddlesnaps/snapcraft-multiarch-action@v1
with:
architecture: ${{ matrix.platform }}

- name: Get Build Version
run: |
echo "VERSION=$(yq -r '.version' pubspec.yaml)" >> $GITHUB_ENV
- name: Upload snap
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh release upload v$VERSION ${{ steps.snapcraft.outputs.snap }}
# https://gihyo.jp/admin/serial/01/ubuntu-recipe/0660#sec3 : Snapパッケージアップロードまでの流れ
# https://github.com/snapcore/action-publish : Snap ActionのREADME.md
# Snap Storeでパッケージ名"miria"を予約($ snapcraft register miria)後、"SNAPCRAFT_STORE_CREDENTIALS"を登録し、
# 以下をコメントアウトを解除することでSnap Storeへアップロードすることが可能です。
# 通常、SnapファイルをそのままStore外で公開することはありません。
#
#- name: Upload Snap Store
# uses: snapcore/action-publish@v1
# env:
# SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.STORE_LOGIN }}
# with:
# snap: ${{ steps.snapcraft.outputs.snap }}
# release: stable

18 changes: 9 additions & 9 deletions .github/workflows/windows_deploy.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: デプロイ(windows zip)

on:
on:
workflow_dispatch:
release:
types: [published]
Expand All @@ -14,7 +14,7 @@ jobs:
runs-on: windows-latest
steps:
- uses: actions/checkout@v4

- name: Install Flutter
uses: subosito/flutter-action@v2
with:
Expand All @@ -29,27 +29,27 @@ jobs:
- name: Get App Version
run: |
echo "version=$(flutter pub run cider version)" >> $env:GITHUB_ENV
echo "builddir=$(pwd)" >> $env:GITHUB_ENV
- name: Build for Windows
run: |
flutter build windows --release
- name: Copy DLL
- name: Get translation files for Inno Setup
run: |
cp C:\Windows\System32\msvcp140.dll build\windows\x64\runner\Release\
cp C:\Windows\System32\vcruntime140.dll build\windows\x64\runner\Release\
cp C:\Windows\System32\vcruntime140_1.dll build\windows\x64\runner\Release\
curl -o ${{ env.builddir }}\Korean.isl https://raw.githubusercontent.com/jrsoftware/issrc/main/Files/Languages/Korean.isl
curl -o ${{ env.builddir }}\ChineseSimplified.isl https://raw.githubusercontent.com/jrsoftware/issrc/main/Files/Languages/Unofficial/ChineseSimplified.isl
- name: Compile .ISS to .EXE Installer
uses: Minionguyjpro/Inno-Setup-Action@v1.1.0
uses: Minionguyjpro/Inno-Setup-Action@v1.2.3
with:
path: windows/innosetup.iss
options: /dMyAppVersion="${{ env.version }}"
options: /dMyAppVersion="${{ env.version }}" /dMyWorkDir="${{ env.builddir }}"

- name: Rename .EXE Installer
run: mv miria-installer.exe miria-installer_${env:version}_x64.exe

- name: Zip files
- name: Compress files
run: |
ren build\windows\x64\runner\Release Miria
Compress-Archive -Path build\windows\x64\runner\Miria -DestinationPath miria_${env:version}_windows-x64.zip -Force
Expand Down
7 changes: 6 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -49,4 +49,9 @@ app.*.map.json
**/build/

# Release
/private_keys/
/private_keys/

# Snap package related
*.snap
# FVM Version Cache
.fvm/
3 changes: 3 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"dart.flutterSdkPath": ".fvm/versions/3.22.2"
}
5 changes: 5 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# CONTRIBUTING GUIDES

## Translate

you can fork this repository and add your translate language or edit files in `lib/l10n` folder.
62 changes: 62 additions & 0 deletions README-ja.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
[English](https://github.com/shiosyakeyakini-info/miria/blob/develop/README.md) | 日本語

# Miria

MiriaはiOS, Android向けMisskeyクライアントです。Windowsでも動作します。

## インストール

- ストアからインストール
- [Play Store](https://play.google.com/store/apps/details?id=info.shiosyakeyakini.miria)
- [App Store](https://apps.apple.com/jp/app/miria/id6449201469)
- 最新版をGitHubからインストール
- [GitHub最新版のリリース(Windows版もあります)](https://github.com/shiosyakeyakini-info/miria/releases/latest)
- 最新版をTestFlightからインストール
- [TestFlight](https://testflight.apple.com/join/X6Q7pE98)

## 機能

- 複数サーバー、アカウント管理
- ホーム、ローカル、ソーシャル、グローバルタイムライン、リスト、アンテナ、チャンネルの表示
- ノート表示
- MFMは現在の構文のすべてに(曲がりなりにも)対応しています。
- ノート、リノート、引用リノート、任意のチャンネルへのリノート
- リアクション
- 通知の表示
- アンテナとリストの編集
- 「みつける」
- お知らせ
- お気に入り
- ノートとユーザーの検索
- 「ページ」機能(閲覧のみ)
- サーバー情報の表示(オンラインユーザー数、ジョブキュー、広告、カスタム絵文字等)

### 機能に対する制限

- Miriaはサーバー独自の機能に基本的には対応していません。
- ただし、一部の機能を独自に取り込んだり、特定のサーバー向けの実装を行っている場合があります。
- MiriaはMisskey v13以上とそれらのフォークされたサーバーでのみ動作します。
- [Sharkey](https://joinsharkey.org/)[CherryPick](https://github.com/kokonect-link/cherrypick)[もこきー](https://mkkey.net/)では動作するかもしれませんが、テストは行われていません。
- [Firefish](https://joinfirefish.org/ja/)[Catodon](https://catodon.social/)およびMastodonへは今後もサポートする予定はありません。
- MiriaはAiScript関連の機能(プラグイン、Play)は実装されていません。難しすぎるためです。
- Miriaはブラウザの機能に依存していません。
- MFMの見た目がブラウザと異なる場合があります。
- カスタムCSSは実装できません。

## コントリビュート

### ローカライズ

[Issue #164](https://github.com/shiosyakeyakini-info/miria/issues/164)を確認してください。

## ライセンス

### アイコンについて

![Miriaのアイコン](/assets/images/icon.png)

`/assets/images/icon.png` においています。

Miriaのアイコンはパブリックドメインとします。お使いのFediverseでカスタム絵文字に登録するなどの用途で自由に使用することができます。

二次創作やその他の利用もだいじょうぶです(でも拘束する根拠はないですが、R-18Gだけ避けてもらえるとうれしいです)
69 changes: 40 additions & 29 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,46 +1,57 @@
EN | [日本語](https://github.com/shiosyakeyakini-info/miria/blob/develop/README-ja.md)

# Miria

Miriaはスマートフォン向けMisskeyクライアントです。
Miria is Misskey Client App for iOS, Android and many targets which made by Flutter.

## コンセプト
## Install

- Misskeyをブラウザで見たときと近い世界観を構築しつつ、アプリならではの操作感にフィットできること
- シームレスに操作ができること
- MFMアートがそれなりに描画できること
- [Play Store](https://play.google.com/store/apps/details?id=info.shiosyakeyakini.miria)
- [App Store](https://apps.apple.com/jp/app/miria/id6449201469)
- [Download latest release from GitHub(Include Windows Version)](https://github.com/shiosyakeyakini-info/miria/releases/latest)
- [TestFlight](https://testflight.apple.com/join/X6Q7pE98)

## インストール
I'm planning to deploy from F-Droid.

- ストアからインストール
- [Play Store](https://play.google.com/store/apps/details?id=info.shiosyakeyakini.miria)
- [App Store](https://apps.apple.com/jp/app/miria/id6449201469)
- 最新版をGitHubからインストール
- [GitHub最新版のリリース](https://github.com/shiosyakeyakini-info/miria/releases/latest)
- 最新版をTestFlightからインストール
- TestFlightはpixivFanbox経由でのURL共有としています。 [pixivFanbox](https://shiosyakeyakini.fanbox.cc/)
## Features

## 対応予定
- Login, Logout, Management multiple servers and accounts
- Show home, local, hybrid(social), global timelines, list, antenna and channel
- Show note with MFM (Completely Supported).
- Note, Renote, Quoted renote, renote to any channel
- Reaction
- Show Notifications
- Edit antenna and list
- Explore
- Announcements
- Favorite
- Search notes and users
- Page (show only)
- Show Server Information (online users, job queue, ads, custom emojis)

### 対応する予定があるもの
### Limited

[issue](https://github.com/shiosyakeyakini-info/miria/issues)を対応予定のメモ欄がわりに使っています。
- Miria does not support forked server's unique features.
- Miria supports only over Misskey v13 and forked servers.
- [Sharkey](https://joinsharkey.org/), [CherryPick](https://github.com/kokonect-link/cherrypick) and [mkkey.net](https://mkkey.net/) may be available but did not test.
- [Firefish](https://joinfirefish.org/ja/), [Catodon](https://catodon.social/), Mastodon will not support in the future too.
- Miria does not support AiScript related features. (Plugin, Play)
- Miria does not depend browser features. ¥
- There are cases in which Miria's MFM appearance is different from browsers.
- Custom CSS didn't support.

### 対応する予定がないもの
## Contribute

- ページ、PlayなどのAiScriptが必要な機能
- これらの機能は実装がたいへん難しいので、いまのところ対応する予定はありません。
- CalckeyなどのMisskeyベースの他のSNS対応
- APIのレスポンスの型が異なるなどさまざまな制約から、現状対応する予定はありません。
- Misskeyの機能の網羅
- このアプリはMisskeyの機能を完全に網羅する予定はありません。
使用頻度の少ない機能(チャンネルの作成など)はWebと併用する使い方を想定しています。
### Localization

## アイコンについて
See [Issue #164](https://github.com/shiosyakeyakini-info/miria/issues/164).

## License

![Miriaのアイコン](/assets/images/icon.png)
### About Miria Icon

`/assets/images/icon.png` においています。
![Miria Icon](/assets/images/icon.png)

Miriaのアイコンはパブリックドメインとします。お使いのFediverseでカスタム絵文字に登録するなどの用途で自由に使用することができます。
Miria icons is avaiable `/assets/images/icon.png`

二次創作やその他の利用もだいじょうぶです(でも拘束する根拠はないですが、R-18Gだけ避けてもらえるとうれしいです)
Miria icons is PD(Public Domain). you can use such as registering custom-emojis to your server.
54 changes: 53 additions & 1 deletion analysis_options.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,60 @@
include: package:flutter_lints/flutter.yaml

linter:
rules:
- always_use_package_imports
- avoid_dynamic_calls
- cancel_subscriptions
- close_sinks
- discarded_futures
- literal_only_boolean_expressions
- no_self_assignments
- prefer_void_to_null
- unnecessary_statements
- always_declare_return_types
- always_put_required_named_parameters_first
- avoid_bool_literals_in_conditional_expressions
- avoid_classes_with_only_static_members
- avoid_private_typedef_functions
# - avoid_redundant_argument_values
- avoid_returning_this
- avoid_setters_without_getters
- avoid_types_on_closure_parameters
- avoid_unused_constructor_parameters
- avoid_void_async
- cascade_invocations
- cast_nullable_to_non_nullable
- directives_ordering
- eol_at_end_of_file
- join_return_with_assignment
- matching_super_parameters
- no_literal_bool_comparisons
- omit_local_variable_types
- one_member_abstracts
- parameter_assignments
- prefer_asserts_in_initializer_lists
- prefer_constructors_over_static_methods
- prefer_double_quotes
- prefer_final_in_for_each
- prefer_final_locals
- avoid_final_parameters
- prefer_if_elements_to_conditional_expressions
- prefer_null_aware_method_calls
- require_trailing_commas
- unawaited_futures
- unnecessary_breaks
- unnecessary_null_aware_operator_on_extension_on_nullable
- unnecessary_null_checks
- unnecessary_parenthesis
- unnecessary_raw_strings

analyzer:
exclude:
- /**/*.freezed.dart
- /**/*.g.dart
- /**/*.g.dart
plugins:
- custom_lint
language:
# strict-casts: true
# strict-inference: true
# strict-raw-types: true
Loading

0 comments on commit 4a11c42

Please sign in to comment.