shibafu528 / cocotodon Goto Github PK
View Code? Open in Web Editor NEWmikutter-plugin (partially) compatible Mastodon client for macOS
License: Apache License 2.0
mikutter-plugin (partially) compatible Mastodon client for macOS
License: Apache License 2.0
DONMastodonNotificationTypeとのマッピングが定義されていない通知を受け取るとクラッシュする。
サーバー側のアップデートやカスタマイズによってそのような通知が発生することが考えられるので、落ちないようにしたい。
現在ストリーミング接続は各TimelineVCが管理している。
しかし、実際には複数のタブで同じストリーミングを購読するケースが有り得るので、 c494cda のような雑パッチが必要になってしまった。
あるべき姿は、アプリ全体でストリーミング接続を管理し、TimelineVCにStatusを配信する形式であると思っている。
将来的に抽出タブのようなものが出来たとしても、これなら接続を有効に使える。
通知もTimelineVCで処理するのではなく、AppDelegateあたりで処理してしまったほうが簡単であろう。
NSURLは非ASCII文字を含むURLから生成することができないため、openURL: が不発に終わっている。
この辺のライブラリを利用して、Punycodeに変換すればおそらく開ける。
このまま放っておいて性格が悪いとかモラルが無いとかあんまり言われたくない
#5 でカスタム絵文字の表示に対応したが、NSTextAttachmentはうまくコピーできないっぽい。
まあ、処理としても文字列としての情報を喪失しているので当然だと思う。
これをどうにかできたらいいなぁという気がするが、どうやるんだろう。
#33 があるならこれも欲しい
たぶん他の行の内容が出ている
リサイズすると直ることがある
#8 の対応の際に -[NSTextView readablePasteboardTypes]
で NSPasteboardTypePNG
を含めて返したせいだと思われる。リッチテキストとして画像が挿入されても何もできないので消したい。
仮に readablePasteboardTypes を使わないとなると、どうペーストをハンドルしたものかとなりそうだが、他にどうにかする手段はあるだろうか。
ユーザー操作以外を原因としたストリーミング切断時は donStreamingDidCompleteWithError:
に非nilな値が渡るようになっているので、これを見て自動で再接続を試みるようにしたい。
DonKitのHTTPリクエストを伴うメソッドはだいたい success:failure:
で終わるようになっている。これは、AFNetworkingのシグネチャを模したものである。
ただ、この形式のコールバックは微妙に扱いにくい気がしている…… リファクタリングを検討したい。
いちおう本命のパターン。
PromiseKitを既に導入しているため、戻り値をAnyPromiseにしてコールバックと繋ぎこめば .then()
とか書けるようになる。 既にPromiseで処理したくてその場でラッピングのコードを書いている場所がいくつかあり、悪くないと思う。
欠点があるとすれば .then
で渡ってくる結果の型は id なことか。呼び出しの度に実際に渡る型を調べて書く必要がある。
completionHandler:
に集約するコールバックを2つ書くのと、1つ書いて if (error)
するのとどっちがマシかみたいな美的感覚の問題が何割かありそうだと思ってのパターン。
(failure:
が独立して渡せることで、エラー処理をまとめることができるというのはあるんだが……)
最後のコールバックが1つだとだいぶ呼び出しの見かけがマシになる。現状の failure:
側の処理は雑なのでそんなに書き換えで残念なことになりそうな場所もない。
ちなみにこちらを採用すると、DonKitを独立させた場合にSwift 5.5からは勝手にasync関数として使えるようになるらしいぞ。
夜フクロウがそういうキーバインドだった気がする
WebUIでできるように、通知可否と時限ミュートの選択も出来るのが望ましい。
ブックマーク自体の一覧はすぐに出来なくてもいいので、追加くらいはしたい
MentionとかHashtagとか。あと、Misskeyで検索ボックス作った時みたいなa hrefとテキストが一致しないやつも。
単にhrefを見てないからです。
Cocotodon v0.1.5から発生。過去にも発生していた気がするが、気がついたら直っていた。映像のように、何も入力されていないか日本語のみが入力されている場合に未確定文字やラテン文字の入力で、行の高さが変動してガタガタする。
特に何もせずそのままの文字数でカウントしているので、WebUIでの文字数カウントと乖離している。
人に配りだしたけど別にbrew caskに登録されているわけでもないので、アップデートが前時代的で不便。
Sparkleを組み込んで更新情報を受け取れるようにしたい。
クリップボードに画像が入っている状態でPostBoxの入力欄に対してCmd+Vを叩いたら、それを添付に入れてほしい
依存関係は 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に画像をドロップしたら添付できるようにしたい
Catalinaどうせあと1年くらいの命だろうし見捨てたい気もするけど、まだサブで持ってるMBAがCatalinaなので一応issueにはしておく。
-[NSImage imageWithSystemSymbolName:accessibilityDescription:]
(macOS 11+) を使っている場所があり、Catalinaではその部分のアイコンが表示されない。
代替手段としては、該当するシンボルをSVGで書き出した上でリソースとして仕込むなどが考えられる?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.