リファクタ

This commit is contained in:
tateisu 2018-10-21 08:15:50 +09:00
parent a886bc4816
commit ccce29ab4b
2 changed files with 33 additions and 42 deletions

View File

@ -29,7 +29,7 @@
</value>
</option>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" />
</component>
<component name="ProjectType">

View File

@ -1,28 +1,26 @@
package jp.juggler.subwaytooter.api.entity
import java.util.regex.Pattern
enum class TootVisibility(
val id:Int
,val order:Int // 公開範囲の広い方とWeb設定に合わせる方が大きい
,val strMastodon:String
,val strMisskey:String
){
val id : Int
, val order : Int // 公開範囲の広い方とWeb設定に合わせる方が大きい
, val strMastodon : String
, val strMisskey : String
) {
// IDは下書き保存などで永続化するので、リリース後は変更しないこと
// WebUIの設定に合わせる。
WebSetting(0, 100,strMastodon = "web_setting",strMisskey ="web_setting")
WebSetting(0, 100, strMastodon = "web_setting", strMisskey = "web_setting"),
// 公開TLに流す
,Public(1, 90,strMastodon="public",strMisskey="public")
Public(1, 90, strMastodon = "public", strMisskey = "public"),
// LTL,FTLには表示されない。
// フォロワーのホームには表示される。
// 公開プロフから見える。
// (Mastodon)タグTLには出ない。
// (Misskey)タグTLには出る。
,UnlistedHome(2,80,strMastodon="unlisted",strMisskey="home")
UnlistedHome(2, 80, strMastodon = "unlisted", strMisskey = "home"),
// 未フォローには見せない。
// (Mastodon)フォロワーのHTLに出る。
@ -31,8 +29,8 @@ enum class TootVisibility(
// (Misskey)ローカルのフォロワーのHTL,LTL,FTLに出る。リモートのフォロワーのHTL,FTLに出る。
// (Misskey)非ログインの閲覧者から見たのタグTLには出るが内容は隠される。「あの人はエロゲのタグで何か話してた」とか分かっちゃう。
// (Misskey)非ログインの閲覧者から見たのプロフには出るが内容は隠される。「あの人は寝てるはずの時間に何か投稿してた」とか分かっちゃう。
,PrivateFollowers(3,70,strMastodon="private",strMisskey="followers")
PrivateFollowers(3, 70, strMastodon = "private", strMisskey = "followers"),
// 指定したユーザにのみ送信する。
// (Misskey)送信先ユーザのIDをリストで指定する。投稿前にユーザの存在確認を行う機会がある。
// (Misskey)送信先ユーザが1以上ならspecified、0ならprivateを指定する。
@ -41,47 +39,42 @@ enum class TootVisibility(
// ローカルのフォロワーのHTL,LTL,FTLに出る。リモートのフォロワーのHTL,FTLに出る。
// (Misskey)非ログインの閲覧者から見たのタグTLには出るが内容は隠される。「あの人はエロゲのタグで何か話してた」とか分かっちゃう。
// (Misskey)非ログインの閲覧者から見たのプロフには出るが内容は隠される。「あの人は寝てるはずの時間に何か投稿してた」とか分かっちゃう。
,DirectSpecified(4,60,strMastodon="direct",strMisskey="specified")
,DirectPrivate(5,50,strMastodon="direct",strMisskey="private")
DirectSpecified(4, 60, strMastodon = "direct", strMisskey = "specified"),
DirectPrivate(5, 50, strMastodon = "direct", strMisskey = "private"),
;
fun canPin(isMisskey : Boolean) : Boolean {
return when {
isMisskey ->when(this){
Public,UnlistedHome -> true
else->false
isMisskey -> when(this) {
Public, UnlistedHome -> true
else -> false
}
else->when(this){
Public,UnlistedHome -> true
else->false
else -> when(this) {
Public, UnlistedHome -> true
else -> false
}
}
}
companion object {
fun parseMastodon(a:String?): TootVisibility?{
for( v in TootVisibility.values() ){
fun parseMastodon(a : String?) : TootVisibility? {
for(v in TootVisibility.values()) {
if(v.strMastodon == a) return v
}
return null
// throw IndexOutOfBoundsException("visibility not in range")
// 例外を投げなくなった
}
fun parseMisskey(a : String?) : TootVisibility? {
for( v in TootVisibility.values() ){
for(v in TootVisibility.values()) {
if(v.strMisskey == a) return v
}
return null
// throw IndexOutOfBoundsException("visibility not in range")
// 例外を投げなくなった
}
fun fromId(id : Int) : TootVisibility? {
for( v in TootVisibility.values() ){
for(v in TootVisibility.values()) {
if(v.id == id) return v
}
return null
@ -91,27 +84,26 @@ enum class TootVisibility(
sv ?: return null
// 新しい方式ではenumのID
for( v in TootVisibility.values() ){
if(v.id.toString() == sv ) return v
for(v in TootVisibility.values()) {
if(v.id.toString() == sv) return v
}
// 古い方式ではマストドンの公開範囲文字列かweb_setting
for( v in TootVisibility.values() ){
if( v.strMastodon == sv ) return v
for(v in TootVisibility.values()) {
if(v.strMastodon == sv) return v
}
return null
}
fun isVisibilitySpoilRequired(
current_visibility : TootVisibility?,
max_visibility : TootVisibility?
) : Boolean {
return try {
if( current_visibility == null || max_visibility==null){
if(current_visibility == null || max_visibility == null) {
false
}else {
} else {
current_visibility.order > max_visibility.order
}
} catch(ex : Throwable) {
@ -128,14 +120,13 @@ enum class TootVisibility(
fun compareVisibility(a : TootVisibility, b : TootVisibility) : Int {
val ia = a.order
val ib = b.order
return when{
ia < ib -> -1
return when {
ia < ib -> - 1
ia > ib -> 1
else -> 0
}
}
}
}