Coder Social home page Coder Social logo

cocotodon's People

Contributors

shibafu528 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

cocotodon's Issues

未知のタイプの通知を着信した時にクラッシュする

DONMastodonNotificationTypeとのマッピングが定義されていない通知を受け取るとクラッシュする。

サーバー側のアップデートやカスタマイズによってそのような通知が発生することが考えられるので、落ちないようにしたい。

ストリーミング接続をTimelineVCごとに持つのではなく、アプリ全体で管理して配信する形にしたい

現在ストリーミング接続は各TimelineVCが管理している。

しかし、実際には複数のタブで同じストリーミングを購読するケースが有り得るので、 c494cda のような雑パッチが必要になってしまった。

あるべき姿は、アプリ全体でストリーミング接続を管理し、TimelineVCにStatusを配信する形式であると思っている。
将来的に抽出タブのようなものが出来たとしても、これなら接続を有効に使える。
通知もTimelineVCで処理するのではなく、AppDelegateあたりで処理してしまったほうが簡単であろう。

カスタム絵文字を含む本文のコピー対応

#5 でカスタム絵文字の表示に対応したが、NSTextAttachmentはうまくコピーできないっぽい。
まあ、処理としても文字列としての情報を喪失しているので当然だと思う。

これをどうにかできたらいいなぁという気がするが、どうやるんだろう。

PostBox: コンテキストメニューに「○○から挿入」が出ているのを消したい

#8 の対応の際に -[NSTextView readablePasteboardTypes]NSPasteboardTypePNG を含めて返したせいだと思われる。リッチテキストとして画像が挿入されても何もできないので消したい。

仮に readablePasteboardTypes を使わないとなると、どうペーストをハンドルしたものかとなりそうだが、他にどうにかする手段はあるだろうか。

スクリーンショット 2021-06-15 8 48 36

DonKitのリファクタリングをしたい

DonKitのHTTPリクエストを伴うメソッドはだいたい success:failure: で終わるようになっている。これは、AFNetworkingのシグネチャを模したものである。
ただ、この形式のコールバックは微妙に扱いにくい気がしている…… リファクタリングを検討したい。

Pattern 1 : PromiseKitを使い、Promiseベースに置き換える

いちおう本命のパターン。

PromiseKitを既に導入しているため、戻り値をAnyPromiseにしてコールバックと繋ぎこめば .then() とか書けるようになる。 既にPromiseで処理したくてその場でラッピングのコードを書いている場所がいくつかあり、悪くないと思う。

欠点があるとすれば .then で渡ってくる結果の型は id なことか。呼び出しの度に実際に渡る型を調べて書く必要がある。

Pattern 2 : Apple式の completionHandler: に集約する

コールバックを2つ書くのと、1つ書いて if (error) するのとどっちがマシかみたいな美的感覚の問題が何割かありそうだと思ってのパターン。
(failure: が独立して渡せることで、エラー処理をまとめることができるというのはあるんだが……)

最後のコールバックが1つだとだいぶ呼び出しの見かけがマシになる。現状の failure: 側の処理は雑なのでそんなに書き換えで残念なことになりそうな場所もない。

ちなみにこちらを採用すると、DonKitを独立させた場合にSwift 5.5からは勝手にasync関数として使えるようになるらしいぞ。

ミュートコマンド

WebUIでできるように、通知可否と時限ミュートの選択も出来るのが望ましい。

単純なURL以外のリンクが開けない

MentionとかHashtagとか。あと、Misskeyで検索ボックス作った時みたいなa hrefとテキストが一致しないやつも。

単にhrefを見てないからです。

Sparkle使いたい

人に配りだしたけど別にbrew caskに登録されているわけでもないので、アップデートが前時代的で不便。
Sparkleを組み込んで更新情報を受け取れるようにしたい。

PostBox: 画像のペースト対応

クリップボードに画像が入っている状態でPostBoxの入力欄に対してCmd+Vを叩いたら、それを添付に入れてほしい

mrubyのビルドでCIが落ちている

依存関係は mruby-uri -> mruby-onig-regexp

たぶん、単に最後にlockfileを生成した後にコミットが増えたから落ちている。

https://github.com/shibafu528/Cocotodon/actions/runs/5566797041/jobs/10168190495#step:8:1196

GIT   https://github.com/mattn/mruby-onig-regexp.git -> build/repos/host/mruby-onig-regexp
Cloning into '/Users/runner/work/Cocotodon/Cocotodon/mruby/build/repos/host/mruby-onig-regexp'...
GIT CHECKOUT DETACH /Users/runner/work/Cocotodon/Cocotodon/mruby/build/repos/host/mruby-onig-regexp -> 20ba3325d6fa504cbbf193e1b2a90e20fdab544f
fatal: reference is not a tree: 20ba3325d6fa504cbbf193e1b2a90e20fdab544f
fatal: reference is not a tree: 20ba3325d6fa504cbbf193e1b2a90e20fdab544f
rake aborted!
Command failed with status (128): [git --git-dir /Users/runner/work/Cocotodon...]
/Users/runner/work/Cocotodon/Cocotodon/mruby/lib/mruby/build/command.rb:39:in `_run'
/Users/runner/work/Cocotodon/Cocotodon/mruby/lib/mruby/build/command.rb:44:in `rescue in _run'
/Users/runner/work/Cocotodon/Cocotodon/mruby/lib/mruby/build/command.rb:40:in `_run'
/Users/runner/work/Cocotodon/Cocotodon/mruby/lib/mruby/build/command.rb:287:in `run_checkout_detach'
/Users/runner/work/Cocotodon/Cocotodon/mruby/lib/mruby/build/load_gems.rb:109:in `load_special_path_gem'
/Users/runner/work/Cocotodon/Cocotodon/mruby/lib/mruby/build/load_gems.rb:17:in `gem'
/Users/runner/work/Cocotodon/Cocotodon/mruby/lib/mruby/gem.rb:361:in `generate_gem_table'
/Users/runner/work/Cocotodon/Cocotodon/mruby/lib/mruby/gem.rb:430:in `check'
/Users/runner/work/Cocotodon/Cocotodon/mruby/tasks/mrbgems.rake:5:in `block in <top (required)>'
/Users/runner/work/Cocotodon/Cocotodon/mruby/lib/mruby/build.rb:17:in `instance_eval'
/Users/runner/work/Cocotodon/Cocotodon/mruby/lib/mruby/build.rb:17:in `block in each_target'
/Users/runner/work/Cocotodon/Cocotodon/mruby/lib/mruby/build.rb:16:in `each'
/Users/runner/work/Cocotodon/Cocotodon/mruby/lib/mruby/build.rb:16:in `each_target'
/Users/runner/work/Cocotodon/Cocotodon/mruby/tasks/mrbgems.rake:1:in `<top (required)>'
/Users/runner/work/Cocotodon/Cocotodon/mruby/Rakefile:29:in `load'
/Users/runner/work/Cocotodon/Cocotodon/mruby/Rakefile:29:in `<top (required)>'

Caused by:
Command failed with status (128): [git --git-dir /Users/runner/work/Cocotodon...]
/Users/runner/work/Cocotodon/Cocotodon/mruby/lib/mruby/build/command.rb:41:in `_run'
/Users/runner/work/Cocotodon/Cocotodon/mruby/lib/mruby/build/command.rb:287:in `run_checkout_detach'
/Users/runner/work/Cocotodon/Cocotodon/mruby/lib/mruby/build/load_gems.rb:109:in `load_special_path_gem'
/Users/runner/work/Cocotodon/Cocotodon/mruby/lib/mruby/build/load_gems.rb:17:in `gem'
/Users/runner/work/Cocotodon/Cocotodon/mruby/lib/mruby/gem.rb:361:in `generate_gem_table'
/Users/runner/work/Cocotodon/Cocotodon/mruby/lib/mruby/gem.rb:430:in `check'
/Users/runner/work/Cocotodon/Cocotodon/mruby/tasks/mrbgems.rake:5:in `block in <top (required)>'
/Users/runner/work/Cocotodon/Cocotodon/mruby/lib/mruby/build.rb:17:in `instance_eval'
/Users/runner/work/Cocotodon/Cocotodon/mruby/lib/mruby/build.rb:17:in `block in each_target'
/Users/runner/work/Cocotodon/Cocotodon/mruby/lib/mruby/build.rb:16:in `each'
/Users/runner/work/Cocotodon/Cocotodon/mruby/lib/mruby/build.rb:16:in `each_target'
/Users/runner/work/Cocotodon/Cocotodon/mruby/tasks/mrbgems.rake:1:in `<top (required)>'
/Users/runner/work/Cocotodon/Cocotodon/mruby/Rakefile:29:in `load'
/Users/runner/work/Cocotodon/Cocotodon/mruby/Rakefile:29:in `<top (required)>'
(See full trace by running task with --trace)
make[1]: *** [all] Error 1
make: *** [all] Error 2
Command ExternalBuildToolExecution failed with a nonzero exit code

通知リスト

Mastodon Web UIの通知カラムみたいなものを表示できるようにする。

添付中のメディアを見える場所に表示したい

現在は手間の都合で添付メディアはコンテキストメニューの中に置いているが、これはどう考えても分かりにくい。
PostBox上のどこか見える場所に配置して、添付されている状態であることが分かりやすいようにしたい。

Krile StarryEyesのような形になっていると良いのかなと考えている。
image

Catalina: ボタンやツールバーのアイコンが表示されない

Catalinaどうせあと1年くらいの命だろうし見捨てたい気もするけど、まだサブで持ってるMBAがCatalinaなので一応issueにはしておく。

-[NSImage imageWithSystemSymbolName:accessibilityDescription:] (macOS 11+) を使っている場所があり、Catalinaではその部分のアイコンが表示されない。
代替手段としては、該当するシンボルをSVGで書き出した上でリソースとして仕込むなどが考えられる?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.