diff --git a/BonfireAuth/src/main/java/sh/sit/bonfire/auth/ApolloController.kt b/BonfireAuth/src/main/java/sh/sit/bonfire/auth/ApolloController.kt
index c19e8ba2..5d66dfa4 100644
--- a/BonfireAuth/src/main/java/sh/sit/bonfire/auth/ApolloController.kt
+++ b/BonfireAuth/src/main/java/sh/sit/bonfire/auth/ApolloController.kt
@@ -7,6 +7,7 @@ import com.apollographql.apollo3.cache.normalized.api.*
import com.apollographql.apollo3.cache.normalized.fetchPolicy
import com.apollographql.apollo3.cache.normalized.normalizedCache
import com.apollographql.apollo3.network.http.DefaultHttpEngine
+import com.dzen.campfire.api.API
import com.sup.dev.android.app.SupAndroid
import com.sup.dev.android.libs.image_loader.ImageLoader
import com.sup.dev.android.libs.image_loader.ImageLoaderRef
@@ -19,7 +20,7 @@ import sh.sit.schema.pagination.Pagination
object ApolloController {
@OptIn(ApolloExperimental::class)
val apolloClient: ApolloClient = ApolloClient.Builder()
- .serverUrl("https://api.bonfire.moe")
+ .serverUrl(API.MELIOR_ROOT)
.httpEngine(DefaultHttpEngine(
OkHttpController.getClient(SupAndroid.appContext!!) {
addInterceptor(AuthInterceptor())
diff --git a/Campfire/build.gradle b/Campfire/build.gradle
index 2cd8451a..5b8cdc08 100644
--- a/Campfire/build.gradle
+++ b/Campfire/build.gradle
@@ -8,26 +8,48 @@ apply plugin: 'com.mikepenz.aboutlibraries.plugin'
android {
compileSdk 35
+ def localPropertiesFile = rootProject.file('local.properties')
+ def localProperties = new Properties()
+ if (localPropertiesFile.exists()) {
+ localProperties.load(localPropertiesFile.newDataInputStream())
+ }
+
+ def posthogApiKey = localProperties.getProperty("POSTHOG_API_KEY", POSTHOG_API_KEY)
+ def host = localProperties.getProperty("HOST", HOST)
+ def serverPosthog = localProperties.getProperty("SERVER_POSTHOG", SERVER_POSTHOG)
+ def serverRoot = localProperties.getProperty("SERVER_ROOT", SERVER_ROOT)
+ def serverMelior = localProperties.getProperty("SERVER_MELIOR", SERVER_MELIOR)
+ def serverS3 = localProperties.getProperty("SERVER_S3", SERVER_S3)
+ def appId = localProperties.getProperty("APP_ID", APP_ID)
+ def appName = localProperties.getProperty("APP_NAME", APP_NAME)
+
defaultConfig {
minSdkVersion 23
targetSdk 35
versionCode 4_12_01
versionName "4.12.1"
- applicationId "sh.sit.bonfire"
+ applicationId appId
+
+ buildConfigField "String", "POSTHOG_API_KEY", "\"$posthogApiKey\""
- buildConfigField "String", "POSTHOG_API_KEY", "\"$POSTHOG_API_KEY\""
- buildConfigField "String", "POSTHOG_HOST", "\"$POSTHOG_HOST\""
+ buildConfigField "String", "HOST", "\"$host\""
+ buildConfigField "String", "SERVER_POSTHOG", "\"$serverPosthog\""
+ buildConfigField "String", "SERVER_ROOT", "\"$serverRoot\""
+ buildConfigField "String", "SERVER_MELIOR", "\"$serverMelior\""
+ buildConfigField "String", "SERVER_S3", "\"$serverS3\""
}
buildTypes {
release {
- manifestPlaceholders = [crashlyticsEnabled: false]
+ resValue "string", "app_name", appName
+ manifestPlaceholders = [crashlyticsEnabled: false, usesCleartextTraffic: false, host: HOST]
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
debug {
- manifestPlaceholders = [crashlyticsEnabled: false]
+ resValue "string", "app_name", appName
+ manifestPlaceholders = [crashlyticsEnabled: false, usesCleartextTraffic: true, host: HOST]
applicationIdSuffix ".debug"
}
}
diff --git a/Campfire/src/debug/AndroidManifest.xml b/Campfire/src/debug/AndroidManifest.xml
deleted file mode 100644
index 51ec6317..00000000
--- a/Campfire/src/debug/AndroidManifest.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
diff --git a/Campfire/src/debug/res/xml/network_security_config.xml b/Campfire/src/debug/res/xml/network_security_config.xml
deleted file mode 100644
index eea69f12..00000000
--- a/Campfire/src/debug/res/xml/network_security_config.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
- 192.168.1.114
-
-
diff --git a/Campfire/src/main/AndroidManifest.xml b/Campfire/src/main/AndroidManifest.xml
index 83299f1d..4538127b 100644
--- a/Campfire/src/main/AndroidManifest.xml
+++ b/Campfire/src/main/AndroidManifest.xml
@@ -20,7 +20,8 @@
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/CampfireSplash"
- android:largeHeap="true">
+ android:largeHeap="true"
+ android:usesCleartextTraffic="${usesCleartextTraffic}">
-
+
diff --git a/Campfire/src/main/java/com/dzen/campfire/app/App.kt b/Campfire/src/main/java/com/dzen/campfire/app/App.kt
index c493527c..ee12ae80 100644
--- a/Campfire/src/main/java/com/dzen/campfire/app/App.kt
+++ b/Campfire/src/main/java/com/dzen/campfire/app/App.kt
@@ -49,6 +49,11 @@ class App : Application() {
FirebaseApp.initializeApp(applicationContext)
+ API.SERV_ROOT = BuildConfig.SERVER_ROOT
+ API.MELIOR_ROOT = BuildConfig.SERVER_MELIOR
+ API.S3_ROOT = BuildConfig.SERVER_S3
+ API.DOMEN = "https://${BuildConfig.HOST}/r/"
+
SupAndroid.init(applicationContext, BuildConfig.APPLICATION_ID, AppActivity::class.java)
SupAndroid.imgErrorGone = ImageLoader.load(ApiResources.IMAGE_BACKGROUND_17).noHolder()
SupAndroid.imgErrorNetwork = ImageLoader.load(ApiResources.IMAGE_BACKGROUND_20).noHolder()
@@ -56,7 +61,7 @@ class App : Application() {
PostHogAndroid.setup(this, PostHogAndroidConfig(
apiKey = BuildConfig.POSTHOG_API_KEY,
- host = BuildConfig.POSTHOG_HOST,
+ host = BuildConfig.SERVER_POSTHOG,
).apply {
optOut = !canSendAnalytics()
})
diff --git a/Campfire/src/main/res/values/strings.xml b/Campfire/src/main/res/values/strings.xml
index 0a98bdb6..85420055 100644
--- a/Campfire/src/main/res/values/strings.xml
+++ b/Campfire/src/main/res/values/strings.xml
@@ -1,3 +1,2 @@
- Bonfire
diff --git a/CampfireApi/src/main/java/com/dzen/campfire/api/API.kt b/CampfireApi/src/main/java/com/dzen/campfire/api/API.kt
index 82abab49..492b31bf 100644
--- a/CampfireApi/src/main/java/com/dzen/campfire/api/API.kt
+++ b/CampfireApi/src/main/java/com/dzen/campfire/api/API.kt
@@ -22,12 +22,12 @@ class API(
const val PORT_SERV_JL_V1 = 7070
const val PORT_SERV_JL = 7071
- const val S3_ROOT = "https://data.bonfire.moe/bonfire"
- const val MELIOR_ROOT = "https://api.bonfire.moe"
- const val SERV_ROOT = "https://cf2.bonfire.moe"
+ lateinit var SERV_ROOT: String
+ lateinit var MELIOR_ROOT: String
+ lateinit var S3_ROOT: String
const val TL_ROOT = "https://tlp.bonfire.moe"
- const val DOMEN = "https://bonfire.moe/r/"
+ lateinit var DOMEN: String
const val DOMEN_DL = "bf://link/"
const val VERSION = "3.1"
const val SUPPORTED_VERSION = "2.0"
@@ -67,6 +67,7 @@ class API(
val LINK_CONF = Link("conf")
val LINK_FANDOM = Link("fandom")
val LINK_PROFILE_ID = Link("profileid")
+ val LINK_PROFILE_NAME = Link("profile")
val LINK_MODERATION = Link("moderation")
val LINK_STICKER = Link("sticker")
val LINK_STICKERS_PACK = Link("stickers")
@@ -125,7 +126,6 @@ class API(
const val LINK_TAG_PROFILE_NAME = "profile"
const val LINK_SHORT_PROFILE = "@"
const val LINK_SHORT_PROFILE_SECOND = "#"
- const val LINK_PROFILE_NAME = "$DOMEN$LINK_TAG_PROFILE_NAME-"
const val ERROR_GONE = "ERROR_GONE"
const val ERROR_BAD_COMMENT = "ERROR_BAD_COMMENT"
@@ -831,6 +831,7 @@ class API(
const val HISTORY_PUBLICATION_TYPE_ADMIN_REMOVE_MEDIA = 29L
const val HISTORY_PUBLICATION_TYPE_SET_NSFW = 30L
const val HISTORY_PUBLICATION_TYPE_ADMIN_SET_NSFW = 31L
+ const val HISTORY_PUBLICATION_TYPE_PENDING = 32L
//
// Post
@@ -1115,20 +1116,6 @@ class API(
const val QUEST_PART_TYPE_ACTION = 3L
const val QUEST_PART_TYPE_UNKNOWN = 100L
- //
- // Reactions
- //
-
- val REACTIONS = arrayOf(
- ApiResources.EMOJI_1,
- ApiResources.EMOJI_2,
- ApiResources.EMOJI_3,
- ApiResources.EMOJI_4,
- ApiResources.EMOJI_5,
- ApiResources.EMOJI_6,
- ApiResources.EMOJI_7
- )
-
//
// Language
//
diff --git a/CampfireApi/src/main/java/com/dzen/campfire/api/API_TRANSLATE.kt b/CampfireApi/src/main/java/com/dzen/campfire/api/API_TRANSLATE.kt
index 8c722d65..d1852f7e 100644
--- a/CampfireApi/src/main/java/com/dzen/campfire/api/API_TRANSLATE.kt
+++ b/CampfireApi/src/main/java/com/dzen/campfire/api/API_TRANSLATE.kt
@@ -1093,6 +1093,7 @@ object API_TRANSLATE {
var history_admin_close_no = 0L
var history_set_nsfw_true = 0L
var history_set_nsfw_false = 0L
+ var history_pending = 0L
var campfire_hello_annotation = 0L
var campfire_hello_1 = 0L
diff --git a/CampfireApi/src/main/java/com/dzen/campfire/api/ApiResources.kt b/CampfireApi/src/main/java/com/dzen/campfire/api/ApiResources.kt
index 3498225e..13cf13ff 100644
--- a/CampfireApi/src/main/java/com/dzen/campfire/api/ApiResources.kt
+++ b/CampfireApi/src/main/java/com/dzen/campfire/api/ApiResources.kt
@@ -471,4 +471,14 @@ object ApiResources {
QUEST_NEW_YEAR_9,
QUEST_NEW_YEAR_10
)
+
+ val REACTIONS = arrayOf(
+ ApiResources.EMOJI_1,
+ ApiResources.EMOJI_2,
+ ApiResources.EMOJI_3,
+ ApiResources.EMOJI_4,
+ ApiResources.EMOJI_5,
+ ApiResources.EMOJI_6,
+ ApiResources.EMOJI_7
+ )
}
diff --git a/CampfireApi/src/main/java/com/dzen/campfire/api/models/publications/history/History.kt b/CampfireApi/src/main/java/com/dzen/campfire/api/models/publications/history/History.kt
index 4e1fdb9f..05b113de 100644
--- a/CampfireApi/src/main/java/com/dzen/campfire/api/models/publications/history/History.kt
+++ b/CampfireApi/src/main/java/com/dzen/campfire/api/models/publications/history/History.kt
@@ -82,6 +82,7 @@ abstract class History : JsonParsable, ImageHolder {
API.HISTORY_PUBLICATION_TYPE_ADMIN_REMOVE_MEDIA -> HistoryAdminRemoveMedia()
API.HISTORY_PUBLICATION_TYPE_SET_NSFW -> HistorySetNsfw()
API.HISTORY_PUBLICATION_TYPE_ADMIN_SET_NSFW -> HistoryAdminSetNsfw()
+ API.HISTORY_PUBLICATION_TYPE_PENDING -> HistoryPending()
else -> HistoryUnknown()
}
diff --git a/CampfireApi/src/main/java/com/dzen/campfire/api/models/publications/history/HistoryPending.kt b/CampfireApi/src/main/java/com/dzen/campfire/api/models/publications/history/HistoryPending.kt
new file mode 100644
index 00000000..bc2ec7ed
--- /dev/null
+++ b/CampfireApi/src/main/java/com/dzen/campfire/api/models/publications/history/HistoryPending.kt
@@ -0,0 +1,26 @@
+package com.dzen.campfire.api.models.publications.history
+
+import com.dzen.campfire.api.API
+import com.sup.dev.java.libs.json.Json
+
+class HistoryPending : History {
+ var pendingTime = 0L
+
+ override fun getType() = API.HISTORY_PUBLICATION_TYPE_PENDING
+
+ override fun json(inp: Boolean, json: Json): Json {
+ pendingTime = json.m(inp, "pendingTime", pendingTime)
+ return super.json(inp, json)
+ }
+
+ constructor()
+
+ constructor(
+ userId: Long,
+ userImageId: Long,
+ userName: String,
+ pendingTime: Long
+ ) : super(userId, userImageId, userName, "") {
+ this.pendingTime = pendingTime
+ }
+}
diff --git a/CampfireApi/src/main/java/com/dzen/campfire/api/requests/publications/RPublicationsReportsGetAll.kt b/CampfireApi/src/main/java/com/dzen/campfire/api/requests/publications/RPublicationsReportsGetAll.kt
index 604f0d53..e2fa68ea 100644
--- a/CampfireApi/src/main/java/com/dzen/campfire/api/requests/publications/RPublicationsReportsGetAll.kt
+++ b/CampfireApi/src/main/java/com/dzen/campfire/api/requests/publications/RPublicationsReportsGetAll.kt
@@ -1,5 +1,6 @@
package com.dzen.campfire.api.requests.publications
+import com.dzen.campfire.api.models.images.ImageHolderReceiver
import com.dzen.campfire.api.models.publications.PublicationReport
import com.dzen.campfire.api.tools.client.Request
import com.sup.dev.java.libs.json.Json
@@ -42,6 +43,11 @@ open class RPublicationsReportsGetAll(
reports = json.m(inp, "reports", reports, Array::class)
}
+ override fun fillImageRefs(receiver: ImageHolderReceiver) {
+ for (report in reports) {
+ report.account.fillImageRefs(receiver)
+ }
+ }
}
-}
\ No newline at end of file
+}
diff --git a/CampfireSDK/src/main/java/com/sayzen/campfiresdk/compose/publication/Reactions.kt b/CampfireSDK/src/main/java/com/sayzen/campfiresdk/compose/publication/Reactions.kt
index 1049829a..aab0c9f3 100644
--- a/CampfireSDK/src/main/java/com/sayzen/campfiresdk/compose/publication/Reactions.kt
+++ b/CampfireSDK/src/main/java/com/sayzen/campfiresdk/compose/publication/Reactions.kt
@@ -22,7 +22,6 @@ import androidx.compose.ui.semantics.Role
import androidx.compose.ui.semantics.role
import androidx.compose.ui.semantics.semantics
import androidx.compose.ui.unit.dp
-import com.dzen.campfire.api.API
import com.dzen.campfire.api.ApiResources
import com.dzen.campfire.api.models.publications.Publication
import com.dzen.campfire.api.requests.publications.RPublicationsReactionAdd
@@ -55,9 +54,9 @@ fun PublicationReactions(
horizontalArrangement = Arrangement.spacedBy(8.dp),
modifier = modifier,
) {
- for (reactionIndex in API.REACTIONS.indices.map { it.toLong() }) {
+ for (reactionIndex in ApiResources.REACTIONS.indices.map { it.toLong() }) {
val reactionCount = data.counts[reactionIndex] ?: 0
- val image = API.REACTIONS.getOrNull(reactionIndex.toInt()) ?: ApiResources.EMOJI_5
+ val image = ApiResources.REACTIONS.getOrNull(reactionIndex.toInt()) ?: ApiResources.EMOJI_5
val windowOffset = remember { mutableStateOf(null) }
diff --git a/CampfireSDK/src/main/java/com/sayzen/campfiresdk/compose/publication/comment/CommentHeader.kt b/CampfireSDK/src/main/java/com/sayzen/campfiresdk/compose/publication/comment/CommentHeader.kt
index faf7dd60..b442c6e6 100644
--- a/CampfireSDK/src/main/java/com/sayzen/campfiresdk/compose/publication/comment/CommentHeader.kt
+++ b/CampfireSDK/src/main/java/com/sayzen/campfiresdk/compose/publication/comment/CommentHeader.kt
@@ -1,5 +1,6 @@
package com.sayzen.campfiresdk.compose.publication.comment
+import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Row
import androidx.compose.material3.MaterialTheme
@@ -16,6 +17,7 @@ import com.sayzen.campfiresdk.R
import com.sayzen.campfiresdk.screens.account.profile.SProfile
import com.sayzen.campfiresdk.screens.fandoms.view.SFandom
import com.sup.dev.android.libs.screens.navigator.Navigator
+import com.sup.dev.android.tools.ToolsToast
import com.sup.dev.java.tools.ToolsDate
@Composable
@@ -55,7 +57,11 @@ internal fun CommentHeader(
style = MaterialTheme.typography.bodyLarge,
overflow = TextOverflow.Ellipsis,
softWrap = false,
- modifier = Modifier.alpha(0.6f)
+ modifier = Modifier
+ .alpha(0.6f)
+ .clickable {
+ ToolsToast.show(ToolsDate.dateToStringFull(comment.dateCreate))
+ }
)
}
}
diff --git a/CampfireSDK/src/main/java/com/sayzen/campfiresdk/compose/publication/post/PostHeader.kt b/CampfireSDK/src/main/java/com/sayzen/campfiresdk/compose/publication/post/PostHeader.kt
index 09f5bf8c..d4433afc 100644
--- a/CampfireSDK/src/main/java/com/sayzen/campfiresdk/compose/publication/post/PostHeader.kt
+++ b/CampfireSDK/src/main/java/com/sayzen/campfiresdk/compose/publication/post/PostHeader.kt
@@ -131,7 +131,7 @@ internal fun PostHeader(post: PublicationPost) {
modifier = Modifier
.then(if (overflowsWidth) Modifier.weight(1f, fill = false) else Modifier)
.clickable {
- ToolsToast.show(ToolsDate.dateToString(creationTimestamp))
+ ToolsToast.show(ToolsDate.dateToStringFull(creationTimestamp))
},
)
}
diff --git a/CampfireSDK/src/main/java/com/sayzen/campfiresdk/compose/publication/post/pages/activity/UserActivityPage.kt b/CampfireSDK/src/main/java/com/sayzen/campfiresdk/compose/publication/post/pages/activity/UserActivityPage.kt
index 29f74237..14d9e609 100644
--- a/CampfireSDK/src/main/java/com/sayzen/campfiresdk/compose/publication/post/pages/activity/UserActivityPage.kt
+++ b/CampfireSDK/src/main/java/com/sayzen/campfiresdk/compose/publication/post/pages/activity/UserActivityPage.kt
@@ -128,7 +128,7 @@ private fun UserActivityCountdown(stopAt: Long) {
val remaining = stopAt - currentTime.longValue
Text(
- text = ToolsDate.dayTimeToString_Ms_HH_MM_SS(remaining),
+ text = ToolsDate.timeToString(remaining),
style = MaterialTheme.typography.bodyMedium,
softWrap = false,
)
diff --git a/CampfireSDK/src/main/java/com/sayzen/campfiresdk/controllers/ControllerComment.kt b/CampfireSDK/src/main/java/com/sayzen/campfiresdk/controllers/ControllerComment.kt
index cb155aec..e9c4e7d8 100644
--- a/CampfireSDK/src/main/java/com/sayzen/campfiresdk/controllers/ControllerComment.kt
+++ b/CampfireSDK/src/main/java/com/sayzen/campfiresdk/controllers/ControllerComment.kt
@@ -7,6 +7,7 @@ import android.widget.FrameLayout
import android.widget.LinearLayout
import com.dzen.campfire.api.API
import com.dzen.campfire.api.API_TRANSLATE
+import com.dzen.campfire.api.ApiResources
import com.dzen.campfire.api.models.publications.PublicationComment
import com.dzen.campfire.api.requests.publications.RPublicationsReactionAdd
import com.dzen.campfire.api.requests.publications.RPublicationsReactionRemove
@@ -95,12 +96,12 @@ object ControllerComment {
val p = ToolsView.dpToPx(4).toInt()
- for (i in API.REACTIONS.indices) {
+ for (i in ApiResources.REACTIONS.indices) {
val v: ViewIcon = ToolsView.inflate(vMenuReactionsLinear, R.layout.z_icon_18)
v.setPadding(p, p, p, p)
v.setOnClickListener { sendReaction(publication, i.toLong()); w?.hide(); }
vMenuReactionsLinear.addView(v)
- ImageLoader.load(API.REACTIONS[i]).into(v)
+ ImageLoader.load(ApiResources.REACTIONS[i]).into(v)
}
}
diff --git a/CampfireSDK/src/main/java/com/sayzen/campfiresdk/controllers/ControllerEffects.kt b/CampfireSDK/src/main/java/com/sayzen/campfiresdk/controllers/ControllerEffects.kt
index 5522523f..5bb9f3a7 100644
--- a/CampfireSDK/src/main/java/com/sayzen/campfiresdk/controllers/ControllerEffects.kt
+++ b/CampfireSDK/src/main/java/com/sayzen/campfiresdk/controllers/ControllerEffects.kt
@@ -128,7 +128,7 @@ object ControllerEffects {
.setOnEnter(t(API_TRANSLATE.app_choose)) { _, date ->
SplashChooseTime()
.setOnEnter(t(API_TRANSLATE.app_choose)) { _, h, m ->
- val endDate = ToolsDate.getStartOfDay_GlobalTimeZone(date) + (h * 60L * 60 * 1000) + (m * 60L * 1000)
+ val endDate = ToolsDate.getStartOfDay(date) + (h * 60L * 60 * 1000) + (m * 60L * 1000)
if (endDate < System.currentTimeMillis()) {
ToolsToast.show(t(API_TRANSLATE.effect_error_time))
return@setOnEnter
diff --git a/CampfireSDK/src/main/java/com/sayzen/campfiresdk/controllers/ControllerFandoms.kt b/CampfireSDK/src/main/java/com/sayzen/campfiresdk/controllers/ControllerFandoms.kt
index 23864bff..598d452b 100644
--- a/CampfireSDK/src/main/java/com/sayzen/campfiresdk/controllers/ControllerFandoms.kt
+++ b/CampfireSDK/src/main/java/com/sayzen/campfiresdk/controllers/ControllerFandoms.kt
@@ -148,7 +148,6 @@ object ControllerFandoms {
.setOnCancel(t(API_TRANSLATE.app_cancel))
.setMin(API.MODERATION_COMMENT_MIN_L)
.setMax(API.MODERATION_COMMENT_MAX_L)
- .addChecker(t(API_TRANSLATE.error_use_english)) { ToolsText.isOnly(it, API.ENGLISH) }
.setOnEnter(t(API_TRANSLATE.app_change)) { w, comment ->
ApiRequestsSupporter.executeEnabled(w, RFandomsAdminChangeCategory(xFandom.getId(), c.index, comment)) {
EventBus.post(EventFandomCategoryChanged(xFandom.getId(), c.index))
@@ -180,7 +179,6 @@ object ControllerFandoms {
.setOnCancel(t(API_TRANSLATE.app_cancel))
.setMin(API.MODERATION_COMMENT_MIN_L)
.setMax(API.MODERATION_COMMENT_MAX_L)
- .addChecker(t(API_TRANSLATE.error_use_english)) { ToolsText.isOnly(it, API.ENGLISH) }
.setOnEnter(t(API_TRANSLATE.app_remove)) { _, comment ->
ApiRequestsSupporter.executeEnabledConfirm(t(API_TRANSLATE.fandom_remove_confirm), t(API_TRANSLATE.app_remove), RFandomsAdminRemove(xFandom.getId(), comment)) {
EventBus.post(EventFandomRemove(xFandom.getId()))
@@ -208,7 +206,6 @@ object ControllerFandoms {
.setMin_2(API.MODERATION_COMMENT_MIN_L)
.setMax_2(API.MODERATION_COMMENT_MAX_L)
.setHint_2(t(API_TRANSLATE.comments_hint))
- .addChecker_2(t(API_TRANSLATE.error_use_english)) { ToolsText.isOnly(it, API.ENGLISH) }
.setOnEnter(t(API_TRANSLATE.app_rename)) { _, name, comment ->
ApiRequestsSupporter.executeEnabledConfirm(t(API_TRANSLATE.fandoms_menu_rename_confirm), t(API_TRANSLATE.fandoms_menu_rename), RFandomsAdminChangeName(xFandom.getId(), name, comment)) {
EventBus.post(EventFandomChanged(xFandom.getId(), name))
diff --git a/CampfireSDK/src/main/java/com/sayzen/campfiresdk/controllers/ControllerLinks.kt b/CampfireSDK/src/main/java/com/sayzen/campfiresdk/controllers/ControllerLinks.kt
index 6043f5b4..cb4dc20a 100644
--- a/CampfireSDK/src/main/java/com/sayzen/campfiresdk/controllers/ControllerLinks.kt
+++ b/CampfireSDK/src/main/java/com/sayzen/campfiresdk/controllers/ControllerLinks.kt
@@ -263,7 +263,7 @@ object ControllerLinks {
}
}
- fun linkToAccount(name: String) = API.LINK_PROFILE_NAME + name
+ fun linkToAccount(name: String) = API.LINK_PROFILE_NAME.asWeb() + name
fun linkToAccount(id: Long) = API.LINK_PROFILE_ID.asWeb() + id
fun linkToFandom(fandomId: Long) = API.LINK_FANDOM.asWeb() + fandomId
fun linkToFandom(fandomId: Long, languageId: Long) = API.LINK_FANDOM.asWeb() + fandomId + "_" + languageId
@@ -303,7 +303,7 @@ object ControllerLinks {
fun makeLinkable(vText: ViewText) {
// fixme: don't do this maybe?
vText.text = vText.text.toString()
- .replace(API.LINK_PROFILE_NAME, "@")
+ .replace(API.LINK_PROFILE_NAME.asWeb(), "@")
.replace(API.DOMEN, "@")
ControllerApi.makeTextHtml(vText)
LinkifyCompat.addLinks(vText, Linkify.WEB_URLS)
@@ -319,7 +319,7 @@ object ControllerLinks {
API.DOMEN,
null,
{ link, start, end -> isCorrectLink(link.subSequence(start, end)) },
- { match, _ -> "https://bonfire.moe/r/${match.group(1)}" }
+ { match, _ -> API.DOMEN + match.group(1) }
)
}
diff --git a/CampfireSDK/src/main/java/com/sayzen/campfiresdk/models/cards/CardChatMessage.kt b/CampfireSDK/src/main/java/com/sayzen/campfiresdk/models/cards/CardChatMessage.kt
index 5159dcc4..d818ab1d 100644
--- a/CampfireSDK/src/main/java/com/sayzen/campfiresdk/models/cards/CardChatMessage.kt
+++ b/CampfireSDK/src/main/java/com/sayzen/campfiresdk/models/cards/CardChatMessage.kt
@@ -10,6 +10,7 @@ import android.widget.LinearLayout
import android.widget.TextView
import com.dzen.campfire.api.API
import com.dzen.campfire.api.API_TRANSLATE
+import com.dzen.campfire.api.ApiResources
import com.dzen.campfire.api.models.chat.ChatTag
import com.dzen.campfire.api.models.notifications.chat.NotificationChatMessageChange
import com.dzen.campfire.api.models.notifications.chat.NotificationChatMessageRemove
@@ -694,9 +695,9 @@ open class CardChatMessage constructor(
);true
}
- val index = if (i.reactionIndex > -1 && i.reactionIndex < API.REACTIONS.size) i.reactionIndex.toInt() else 0
+ val index = if (i.reactionIndex > -1 && i.reactionIndex < ApiResources.REACTIONS.size) i.reactionIndex.toInt() else 0
v.setIcon(R.color.focus)
- ImageLoader.load(API.REACTIONS[index]).intoBitmap { v.setIcon(it) }
+ ImageLoader.load(ApiResources.REACTIONS[index]).intoBitmap { v.setIcon(it) }
}
(vReactions.layoutParams as ViewGroup.MarginLayoutParams).topMargin =
@@ -912,12 +913,12 @@ open class CardChatMessage constructor(
.asPopupShow(targetView, x, y)
val p = ToolsView.dpToPx(4).toInt()
- for (i in API.REACTIONS.indices) {
+ for (i in ApiResources.REACTIONS.indices) {
val v: ViewIcon = ToolsView.inflate(vMenuReactionsLinear, R.layout.z_icon_18)
v.setPadding(p, p, p, p)
v.setOnClickListener { sendReaction(i.toLong()); w?.hide(); }
vMenuReactionsLinear.addView(v)
- ImageLoader.load(API.REACTIONS[i]).into(v)
+ ImageLoader.load(ApiResources.REACTIONS[i]).into(v)
}
}
diff --git a/CampfireSDK/src/main/java/com/sayzen/campfiresdk/models/cards/CardComment.kt b/CampfireSDK/src/main/java/com/sayzen/campfiresdk/models/cards/CardComment.kt
index daeeabfa..f87362bc 100644
--- a/CampfireSDK/src/main/java/com/sayzen/campfiresdk/models/cards/CardComment.kt
+++ b/CampfireSDK/src/main/java/com/sayzen/campfiresdk/models/cards/CardComment.kt
@@ -8,6 +8,7 @@ import android.widget.ImageView
import android.widget.TextView
import com.dzen.campfire.api.API
import com.dzen.campfire.api.API_TRANSLATE
+import com.dzen.campfire.api.ApiResources
import com.dzen.campfire.api.models.notifications.comments.NotificationComment
import com.dzen.campfire.api.models.notifications.comments.NotificationCommentAnswer
import com.dzen.campfire.api.models.notifications.publications.NotificationMention
@@ -420,9 +421,9 @@ open class CardComment(
);true
}
- val index = if (i.reactionIndex > -1 && i.reactionIndex < API.REACTIONS.size) i.reactionIndex.toInt() else 0
+ val index = if (i.reactionIndex > -1 && i.reactionIndex < ApiResources.REACTIONS.size) i.reactionIndex.toInt() else 0
v.setIcon(R.color.focus)
- ImageLoader.load(API.REACTIONS[index]).intoBitmap { v.setIcon(it) }
+ ImageLoader.load(ApiResources.REACTIONS[index]).intoBitmap { v.setIcon(it) }
}
(vReactions.layoutParams as ViewGroup.MarginLayoutParams).topMargin =
diff --git a/CampfireSDK/src/main/java/com/sayzen/campfiresdk/models/cards/events/CardPublicationEventAdmin.kt b/CampfireSDK/src/main/java/com/sayzen/campfiresdk/models/cards/events/CardPublicationEventAdmin.kt
index ed9ff5f2..ad4c4633 100644
--- a/CampfireSDK/src/main/java/com/sayzen/campfiresdk/models/cards/events/CardPublicationEventAdmin.kt
+++ b/CampfireSDK/src/main/java/com/sayzen/campfiresdk/models/cards/events/CardPublicationEventAdmin.kt
@@ -59,14 +59,14 @@ class CardPublicationEventAdmin(
when (e) {
is ApiEventAdminBan -> {
- text = tCap(API_TRANSLATE.publication_event_blocked_app_admin, tSexCap(CampfireConstants.RED, e.ownerAccountSex, API_TRANSLATE.he_blocked, API_TRANSLATE.she_blocked), ControllerLinks.linkToAccount(e.targetAccountName), ToolsDate.dateToStringFull(e.blockDate))
+ text = tCap(API_TRANSLATE.publication_event_blocked_app_admin, tSexCap(CampfireConstants.RED, e.ownerAccountSex, API_TRANSLATE.he_blocked, API_TRANSLATE.she_blocked), ControllerLinks.linkToAccount(e.targetAccountName), ToolsDate.dateToString(e.blockDate, false))
view.setOnClickListener { SProfile.instance(e.targetAccountId, Navigator.TO) }
}
is ApiEventAdminBlockPublication -> {
val publicationName = ControllerPublications.getName(e.publicationType)
text = tCap(API_TRANSLATE.publication_event_admin_blocked_publication, tSexCap(CampfireConstants.RED, e.ownerAccountSex, API_TRANSLATE.he_blocked, API_TRANSLATE.she_blocked), publicationName, ControllerLinks.linkToAccount(e.targetAccountName))
- if (e.blockAccountDate > 0 && e.blockedInApp && e.blockFandomId < 1) text += "\n" + t(API_TRANSLATE.publication_event_account_block_date, ToolsDate.dateToStringFull(e.blockAccountDate))
- if (e.blockAccountDate > 0 && !e.blockedInApp && e.blockFandomId > 0) text += "\n" + t(API_TRANSLATE.publication_event_account_block_date_fandom, ToolsDate.dateToStringFull(e.blockAccountDate), "${e.blockFandomName}")
+ if (e.blockAccountDate > 0 && e.blockedInApp && e.blockFandomId < 1) text += "\n" + t(API_TRANSLATE.publication_event_account_block_date, ToolsDate.dateToString(e.blockAccountDate, false))
+ if (e.blockAccountDate > 0 && !e.blockedInApp && e.blockFandomId > 0) text += "\n" + t(API_TRANSLATE.publication_event_account_block_date_fandom, ToolsDate.dateToString(e.blockAccountDate, false), "${e.blockFandomName}")
if (e.warned) text += "\n${t(API_TRANSLATE.publication_event_account_block_warn)}"
if (e.lastPublicationsBlocked) text += "\n${t(API_TRANSLATE.publication_event_account_block_last_publications)}"
view.setOnClickListener { SProfile.instance(e.targetAccountId, Navigator.TO) }
diff --git a/CampfireSDK/src/main/java/com/sayzen/campfiresdk/models/cards/events/CardPublicationEventUser.kt b/CampfireSDK/src/main/java/com/sayzen/campfiresdk/models/cards/events/CardPublicationEventUser.kt
index d40bb05b..113bb352 100644
--- a/CampfireSDK/src/main/java/com/sayzen/campfiresdk/models/cards/events/CardPublicationEventUser.kt
+++ b/CampfireSDK/src/main/java/com/sayzen/campfiresdk/models/cards/events/CardPublicationEventUser.kt
@@ -86,14 +86,14 @@ class CardPublicationEventUser(
view.setOnClickListener { ControllerCampfireSDK.onToAchievementClicked(publication.creator.id, publication.creator.name, API.ACHI_QUESTS.index, false, Navigator.TO) }
}
is ApiEventUserAdminBaned -> {
- text = tCap(API_TRANSLATE.publication_event_block_app, "{D32F2F ${ToolsResources.sex(e.adminAccountSex, t(API_TRANSLATE.he_baned), t(API_TRANSLATE.she_baned)).capitalize()}}", ToolsDate.dateToStringFull(e.blockDate), ControllerLinks.linkToAccount(e.adminAccountName))
+ text = tCap(API_TRANSLATE.publication_event_block_app, "{D32F2F ${ToolsResources.sex(e.adminAccountSex, t(API_TRANSLATE.he_baned), t(API_TRANSLATE.she_baned)).capitalize()}}", ToolsDate.dateToString(e.blockDate, false), ControllerLinks.linkToAccount(e.adminAccountName))
view.setOnClickListener { SProfile.instance(e.ownerAccountId, Navigator.TO) }
}
is ApiEventUserAdminPublicationBlocked -> {
val publicationName = ControllerPublications.getName(e.publicationType)
text = tCap(API_TRANSLATE.publication_event_block_publication, ControllerLinks.linkToAccount(e.adminAccountName), tSex(CampfireConstants.RED, e.adminAccountSex, API_TRANSLATE.he_blocked, API_TRANSLATE.she_blocked), publicationName)
- if (e.blockedInApp && e.blockAccountDate > 0) text += "\n" + t(API_TRANSLATE.publication_event_account_block_date, ToolsDate.dateToStringFull(e.blockAccountDate))
- if (!e.blockedInApp && e.blockAccountDate > 0) text += "\n" + t(API_TRANSLATE.publication_event_account_block_date_fandom, ToolsDate.dateToStringFull(e.blockAccountDate), "${e.blockFandomName}")
+ if (e.blockedInApp && e.blockAccountDate > 0) text += "\n" + t(API_TRANSLATE.publication_event_account_block_date, ToolsDate.dateToString(e.blockAccountDate, false))
+ if (!e.blockedInApp && e.blockAccountDate > 0) text += "\n" + t(API_TRANSLATE.publication_event_account_block_date_fandom, ToolsDate.dateToString(e.blockAccountDate, false), "${e.blockFandomName}")
if (e.warned) text += "\n${t(API_TRANSLATE.publication_event_account_block_warn)}"
if (e.lastPublicationsBlocked) text += "\n${t(API_TRANSLATE.publication_event_account_block_last_publications)}"
view.setOnClickListener {
diff --git a/CampfireSDK/src/main/java/com/sayzen/campfiresdk/models/cards/history/CardHistoryPublication.kt b/CampfireSDK/src/main/java/com/sayzen/campfiresdk/models/cards/history/CardHistoryPublication.kt
index 0759c19b..dd844ba0 100644
--- a/CampfireSDK/src/main/java/com/sayzen/campfiresdk/models/cards/history/CardHistoryPublication.kt
+++ b/CampfireSDK/src/main/java/com/sayzen/campfiresdk/models/cards/history/CardHistoryPublication.kt
@@ -78,6 +78,7 @@ class CardHistoryPublication(
vAvatar.setSubtitle(t(API_TRANSLATE.history_set_nsfw_false))
}
}
+ is HistoryPending -> vAvatar.setSubtitle(t(API_TRANSLATE.history_pending, ToolsDate.dateToString(history.pendingTime)))
}
if (history.comment.isNotEmpty()) vAvatar.setSubtitle(vAvatar.getSubTitle() + "\n" + t(API_TRANSLATE.app_comment) + ": " + history.comment)
diff --git a/CampfireSDK/src/main/java/com/sayzen/campfiresdk/models/cards/post_pages/CardPageUserActivity.kt b/CampfireSDK/src/main/java/com/sayzen/campfiresdk/models/cards/post_pages/CardPageUserActivity.kt
index 43c888c3..14e7717e 100644
--- a/CampfireSDK/src/main/java/com/sayzen/campfiresdk/models/cards/post_pages/CardPageUserActivity.kt
+++ b/CampfireSDK/src/main/java/com/sayzen/campfiresdk/models/cards/post_pages/CardPageUserActivity.kt
@@ -140,7 +140,7 @@ class CardPageUserActivity(
vPageTimer.setTextColor(colorGreen)
} else {
vPageUser.visibility = View.VISIBLE
- vPageTimer.text = ToolsDate.dayTimeToString_Ms_HH_MM_SS(date - System.currentTimeMillis())
+ vPageTimer.text = ToolsDate.timeToString(date - System.currentTimeMillis())
vPageTimer.setTextColor(colorWhite)
}
}
diff --git a/CampfireSDK/src/main/java/com/sayzen/campfiresdk/screens/activities/user_activities/CardUserActivity.kt b/CampfireSDK/src/main/java/com/sayzen/campfiresdk/screens/activities/user_activities/CardUserActivity.kt
index 8f7f417a..d2ae0b32 100644
--- a/CampfireSDK/src/main/java/com/sayzen/campfiresdk/screens/activities/user_activities/CardUserActivity.kt
+++ b/CampfireSDK/src/main/java/com/sayzen/campfiresdk/screens/activities/user_activities/CardUserActivity.kt
@@ -160,7 +160,7 @@ class CardUserActivity(
vTimer.setTextColor(colorGreen)
} else {
vUser.visibility = View.VISIBLE
- vTimer.text = ToolsDate.dayTimeToString_Ms_HH_MM_SS(date - System.currentTimeMillis())
+ vTimer.text = ToolsDate.timeToString(date - System.currentTimeMillis())
vTimer.setTextColor(colorWhite)
}
}
diff --git a/CampfireSDK/src/main/java/com/sayzen/campfiresdk/screens/fandoms/SSubscribers.kt b/CampfireSDK/src/main/java/com/sayzen/campfiresdk/screens/fandoms/SSubscribers.kt
new file mode 100644
index 00000000..e1f21865
--- /dev/null
+++ b/CampfireSDK/src/main/java/com/sayzen/campfiresdk/screens/fandoms/SSubscribers.kt
@@ -0,0 +1,36 @@
+package com.sayzen.campfiresdk.screens.fandoms
+
+import com.dzen.campfire.api.API_TRANSLATE
+import com.dzen.campfire.api.ApiResources
+import com.dzen.campfire.api.requests.fandoms.RFandomsSubscribersGetAll
+import com.dzen.campfire.api.models.account.Account
+import com.sayzen.campfiresdk.controllers.api
+import com.sayzen.campfiresdk.controllers.t
+import com.sayzen.campfiresdk.models.cards.CardAccount
+import com.sayzen.campfiresdk.support.load
+import com.sup.dev.android.libs.image_loader.ImageLoader
+import com.sup.dev.android.views.screens.SLoadingRecycler
+
+class SSubscribers(
+ private val fandomId: Long,
+ private val languageId: Long,
+) : SLoadingRecycler() {
+ init {
+ disableShadows()
+ disableNavigation()
+ setTextEmpty(t(API_TRANSLATE.fandom_subscribers_empty))
+ setBackgroundImage(ImageLoader.load(ApiResources.IMAGE_BACKGROUND_24))
+ setTitle(t(API_TRANSLATE.app_subscribers))
+
+ adapter.setBottomLoader { onLoad, cards ->
+ RFandomsSubscribersGetAll(cards.size.toLong(), fandomId, languageId)
+ .onComplete { r -> onLoad.invoke(r.accounts) }
+ .onNetworkError { onLoad.invoke(null) }
+ .send(api)
+ }
+ }
+
+ override fun classOfCard() = CardAccount::class
+
+ override fun map(item: Account) = CardAccount(item)
+}
diff --git a/CampfireSDK/src/main/java/com/sayzen/campfiresdk/screens/fandoms/view/CardButtons.kt b/CampfireSDK/src/main/java/com/sayzen/campfiresdk/screens/fandoms/view/CardButtons.kt
index 722fd4f0..beed577c 100644
--- a/CampfireSDK/src/main/java/com/sayzen/campfiresdk/screens/fandoms/view/CardButtons.kt
+++ b/CampfireSDK/src/main/java/com/sayzen/campfiresdk/screens/fandoms/view/CardButtons.kt
@@ -6,6 +6,7 @@ import com.sayzen.campfiresdk.R
import com.sayzen.campfiresdk.controllers.t
import com.sayzen.campfiresdk.models.events.fandom.EventFandomRemoveModerator
import com.sayzen.campfiresdk.screens.activities.user_activities.SRelayRacesList
+import com.sayzen.campfiresdk.screens.fandoms.SSubscribers
import com.sayzen.campfiresdk.screens.fandoms.STags
import com.sayzen.campfiresdk.screens.fandoms.chats.SFandomChatsList
import com.sayzen.campfiresdk.screens.fandoms.moderation.moderators.SModeration
@@ -32,6 +33,7 @@ class CardButtons(
val vChatsButton: SettingsMini = view.findViewById(R.id.vChatsButton)
val vTagsButton: SettingsMini = view.findViewById(R.id.vTagsButton)
val vModerationButton: SettingsMini = view.findViewById(R.id.vModerationButton)
+ val vUsersButton: SettingsMini = view.findViewById(R.id.vUsersButton)
val vSubscribersButton: SettingsMini = view.findViewById(R.id.vSubscribersButton)
val vWikiButton: SettingsMini = view.findViewById(R.id.vWikiButton)
val vRubricButton: SettingsMini = view.findViewById(R.id.vRubricButton)
@@ -40,7 +42,8 @@ class CardButtons(
vChatsButton.setTitle(t(API_TRANSLATE.app_chats))
vTagsButton.setTitle(t(API_TRANSLATE.app_tags))
vModerationButton.setTitle(t(API_TRANSLATE.app_moderation))
- vSubscribersButton.setTitle(t(API_TRANSLATE.app_users))
+ vUsersButton.setTitle(t(API_TRANSLATE.app_users))
+ vSubscribersButton.setTitle(t(API_TRANSLATE.app_subscribers))
vRubricButton.setTitle(t(API_TRANSLATE.app_rubrics))
vWikiButton.setTitle(t(API_TRANSLATE.app_wiki))
vRelayRaces.setTitle(t(API_TRANSLATE.app_relay_races))
@@ -49,7 +52,8 @@ class CardButtons(
vChatsButton.setOnClickListener { Navigator.to(SFandomChatsList(xFandom.getId(), xFandom.getLanguageId())) }
vTagsButton.setOnClickListener { STags.instance(xFandom.getId(), xFandom.getLanguageId(), Navigator.TO) }
vModerationButton.setOnClickListener { Navigator.to(SModeration(xFandom.getId(), xFandom.getLanguageId())) }
- vSubscribersButton.setOnClickListener { Navigator.to(SRating(xFandom.getId(), xFandom.getLanguageId())) }
+ vUsersButton.setOnClickListener { Navigator.to(SRating(xFandom.getId(), xFandom.getLanguageId())) }
+ vSubscribersButton.setOnClickListener { Navigator.to(SSubscribers(xFandom.getId(), xFandom.getLanguageId())) }
vWikiButton.setOnClickListener { Navigator.to(SWikiList(xFandom.getId(), xFandom.getLanguageId(), 0, "")) }
vRubricButton.setOnClickListener { Navigator.to(SRubricsList(xFandom.getId(), xFandom.getLanguageId(), 0, true)) }
vRelayRaces.setOnClickListener { Navigator.to(SRelayRacesList(xFandom.getId(), xFandom.getLanguageId())) }
diff --git a/CampfireSDK/src/main/java/com/sayzen/campfiresdk/screens/fandoms/view/CardFandomInfo.kt b/CampfireSDK/src/main/java/com/sayzen/campfiresdk/screens/fandoms/view/CardFandomInfo.kt
index 5b515e2a..b3cd04d9 100644
--- a/CampfireSDK/src/main/java/com/sayzen/campfiresdk/screens/fandoms/view/CardFandomInfo.kt
+++ b/CampfireSDK/src/main/java/com/sayzen/campfiresdk/screens/fandoms/view/CardFandomInfo.kt
@@ -216,7 +216,6 @@ class CardFandomInfo(
.setMin_2(API.MODERATION_COMMENT_MIN_L)
.setMax_2(API.MODERATION_COMMENT_MAX_L)
.setHint_2(t(API_TRANSLATE.comments_hint))
- .addChecker_2(t(API_TRANSLATE.error_use_english)) { ToolsText.isOnly(it, API.ENGLISH) }
.setOnEnter(t(API_TRANSLATE.app_change)) { w, cof, comment ->
val v = (cof.toDouble() * 100).toLong()
diff --git a/CampfireSDK/src/main/java/com/sayzen/campfiresdk/screens/fandoms/view/SplashParams.kt b/CampfireSDK/src/main/java/com/sayzen/campfiresdk/screens/fandoms/view/SplashParams.kt
index 00a99e43..64957f4e 100644
--- a/CampfireSDK/src/main/java/com/sayzen/campfiresdk/screens/fandoms/view/SplashParams.kt
+++ b/CampfireSDK/src/main/java/com/sayzen/campfiresdk/screens/fandoms/view/SplashParams.kt
@@ -59,7 +59,6 @@ internal class SplashParams(
private fun updateFinishEnabled() {
- val commentCheck = ToolsText.isOnly(vComment.getText(), API.ENGLISH)
val newArray = getSelected()
var changes = selected.size != newArray.size
if(!changes){
@@ -74,8 +73,7 @@ internal class SplashParams(
}
}
}
- vComment.setError(if (commentCheck) null else t(API_TRANSLATE.error_use_english))
- vEnter.isEnabled = commentCheck && changes && getSelected().isNotEmpty() && vComment.getText().length >= API.MODERATION_COMMENT_MIN_L && vComment.getText().length <= API.MODERATION_COMMENT_MAX_L
+ vEnter.isEnabled = changes && getSelected().isNotEmpty() && vComment.getText().length >= API.MODERATION_COMMENT_MIN_L && vComment.getText().length <= API.MODERATION_COMMENT_MAX_L
}
private fun getSelected(): Array {
diff --git a/CampfireSDK/src/main/java/com/sayzen/campfiresdk/screens/post/create/SplashTagsAdditional.kt b/CampfireSDK/src/main/java/com/sayzen/campfiresdk/screens/post/create/SplashTagsAdditional.kt
index 46e1f2c3..285bd51b 100644
--- a/CampfireSDK/src/main/java/com/sayzen/campfiresdk/screens/post/create/SplashTagsAdditional.kt
+++ b/CampfireSDK/src/main/java/com/sayzen/campfiresdk/screens/post/create/SplashTagsAdditional.kt
@@ -105,7 +105,7 @@ class SplashTagsAdditional(
.setOnEnter(t(API_TRANSLATE.app_choose)) { _, date ->
SplashChooseTime()
.setOnEnter(t(API_TRANSLATE.app_choose)) { _, h, m ->
- setPendingDate(ToolsDate.getStartOfDay_GlobalTimeZone(date) + (h * 60L * 60 * 1000) + (m * 60L * 1000))
+ setPendingDate(ToolsDate.getStartOfDay(date) + (h * 60L * 60 * 1000) + (m * 60L * 1000))
}
.asSheetShow()
}
diff --git a/CampfireSDK/src/main/java/com/sayzen/campfiresdk/screens/punishments/CardPunishment.kt b/CampfireSDK/src/main/java/com/sayzen/campfiresdk/screens/punishments/CardPunishment.kt
index f28e5aa1..5640b258 100644
--- a/CampfireSDK/src/main/java/com/sayzen/campfiresdk/screens/punishments/CardPunishment.kt
+++ b/CampfireSDK/src/main/java/com/sayzen/campfiresdk/screens/punishments/CardPunishment.kt
@@ -44,7 +44,7 @@ class CardPunishment(
API_TRANSLATE.he_blocked,
API_TRANSLATE.she_blocked
),
- ToolsDate.dateToStringFull(punishment.banDate)
+ ToolsDate.dateToString(punishment.banDate, false)
)
else text = tCap(
API_TRANSLATE.profile_punishment_card_warn_admin,
@@ -63,7 +63,7 @@ class CardPunishment(
API_TRANSLATE.she_blocked
),
"" + punishment.fandomName,
- ToolsDate.dateToStringFull(punishment.banDate)
+ ToolsDate.dateToString(punishment.banDate, false)
)
else text = tCap(
API_TRANSLATE.profile_punishment_card_warn,
diff --git a/CampfireSDK/src/main/java/com/sayzen/campfiresdk/support/ApiRequestsSupporter.kt b/CampfireSDK/src/main/java/com/sayzen/campfiresdk/support/ApiRequestsSupporter.kt
index bb266345..6f95b9d3 100644
--- a/CampfireSDK/src/main/java/com/sayzen/campfiresdk/support/ApiRequestsSupporter.kt
+++ b/CampfireSDK/src/main/java/com/sayzen/campfiresdk/support/ApiRequestsSupporter.kt
@@ -61,7 +61,7 @@ object ApiRequestsSupporter {
fun execute(request: Request, sendNow:Boolean, onComplete: (K) -> Unit): Request {
request.onComplete { r -> onComplete.invoke(r) }
.onNetworkError { ToolsToast.show(SupAndroid.TEXT_ERROR_NETWORK) }
- .onApiError(ApiClient.ERROR_ACCOUNT_IS_BANED) { ex -> ToolsToast.show(String.format(SupAndroid.TEXT_ERROR_ACCOUNT_BANED!!, ToolsDate.dateToStringFull(java.lang.Long.parseLong(ex.params[0])))) }
+ .onApiError(ApiClient.ERROR_ACCOUNT_IS_BANED) { ex -> ToolsToast.show(String.format(SupAndroid.TEXT_ERROR_ACCOUNT_BANED!!, ToolsDate.dateToString(java.lang.Long.parseLong(ex.params[0]), false))) }
.onApiError(ApiClient.ERROR_GONE) { ToolsToast.show(SupAndroid.TEXT_ERROR_GONE) }
if(sendNow)request.sendNow(api!!)
@@ -75,7 +75,7 @@ object ApiRequestsSupporter {
onApiError(ApiClient.ERROR_ACCOUNT_IS_BANED) { ex ->
ToolsToast.show(
SupAndroid.TEXT_ERROR_ACCOUNT_BANED!!
- .format(ToolsDate.dateToStringFull(ex.params[0].toLong()))
+ .format(ToolsDate.dateToString(ex.params[0].toLong(), false))
)
}
onApiError(ApiClient.ERROR_GONE) {
diff --git a/CampfireSDK/src/main/res/layout/screen_fandom_card_buttons.xml b/CampfireSDK/src/main/res/layout/screen_fandom_card_buttons.xml
index d8974e60..d20e848e 100644
--- a/CampfireSDK/src/main/res/layout/screen_fandom_card_buttons.xml
+++ b/CampfireSDK/src/main/res/layout/screen_fandom_card_buttons.xml
@@ -41,6 +41,14 @@
app:Settings_icon_filter="?colorOnPrimaryIcons"
app:Settings_icon="@drawable/ic_security_white_24dp"/>
+
+
-
\ No newline at end of file
+
diff --git a/CampfireSDK/src/main/resources/lang/ru.json b/CampfireSDK/src/main/resources/lang/ru.json
index 031a4954..db5bdadb 100644
--- a/CampfireSDK/src/main/resources/lang/ru.json
+++ b/CampfireSDK/src/main/resources/lang/ru.json
@@ -1013,6 +1013,7 @@
"history_edit_public": "Публикация отредактирована",
"history_multilingual": "Публикация сделана мультиязычной",
"history_not_multilingual": "Публикация сделана не мультиязычной",
+ "history_pending": "Публикация отложена до %s",
"history_pin_profile": "Публикация закреплена в профиле",
"history_publish": "Публикация опубликована",
"history_set_nsfw_false": "Публикация отмечена как NSFW",
diff --git a/CampfireServer/src/main/java/com/dzen/campfire/server/app/App.kt b/CampfireServer/src/main/java/com/dzen/campfire/server/app/App.kt
index 7071530e..01cbaa19 100644
--- a/CampfireServer/src/main/java/com/dzen/campfire/server/app/App.kt
+++ b/CampfireServer/src/main/java/com/dzen/campfire/server/app/App.kt
@@ -6,7 +6,6 @@ import com.dzen.campfire.api.tools.server.RequestFactory
import com.dzen.campfire.server.controllers.*
import com.sup.dev.java.libs.debug.err
import com.sup.dev.java.libs.json.Json
-import com.sup.dev.java.tools.ToolsDate
import com.sup.dev.java.tools.ToolsFiles
import com.sup.dev.java.tools.ToolsThreads
import com.sup.dev.java_pc.google.GoogleNotification
@@ -21,6 +20,7 @@ object App {
val secrets = Json(ToolsFiles.readString("secrets/Secrets.json"))
val secretsBotsTokens = secrets.getStrings("bots_tokens")!!.map { it?:"" }.toTypedArray()
val secretsConfig = secrets.getJson("config")!!
+ val secretsApi = secrets.getJson("api")!!
val secretsKeys = secrets.getJson("keys")!!
val secretsS3 = secrets.getJson("s3")!!
val test = secretsConfig.getString("build_type")!="release"
@@ -41,10 +41,14 @@ object App {
try {
System.err.println("Sayzen Studio")
- System.err.println(ToolsDate.getTimeZoneName() + " ( " + ToolsDate.getTimeZoneHours() + " )")
System.err.println("Charset: " + Charset.defaultCharset())
System.err.println("API Version: " + API.VERSION)
+ API.SERV_ROOT = secretsApi["server_root"]!!
+ API.MELIOR_ROOT = secretsApi["server_melior"]!!
+ API.S3_ROOT = secretsApi["server_s3"]!!
+ API.DOMEN = "https://${secretsApi.getString("host")!!}/r/"
+
GoogleNotification.init(googleNotificationKey, arrayOf())
val requestFactory = RequestFactory(jarFile, "CampfireServer\\src\\main\\java")
diff --git a/CampfireServer/src/main/java/com/dzen/campfire/server/controllers/ControllerModeration.kt b/CampfireServer/src/main/java/com/dzen/campfire/server/controllers/ControllerModeration.kt
index 87ba9d48..4b9af5af 100644
--- a/CampfireServer/src/main/java/com/dzen/campfire/server/controllers/ControllerModeration.kt
+++ b/CampfireServer/src/main/java/com/dzen/campfire/server/controllers/ControllerModeration.kt
@@ -5,7 +5,9 @@ import com.dzen.campfire.api.tools.ApiException
object ControllerModeration {
fun parseComment(comment: String, userId: Long = 0L): String {
- if (ControllerCensor.containsSwearing(comment)) {
+ val trimmed = comment.trim()
+
+ if (ControllerCensor.containsSwearing(trimmed)) {
val account = ControllerAccounts.getAccount(userId)
if (account != null) {
ControllerEffects.makeSystem(
@@ -18,9 +20,9 @@ object ControllerModeration {
throw ApiException(API.ERROR_BAD_COMMENT)
}
- if (comment.length < API.MODERATION_COMMENT_MIN_L || comment.length > API.MODERATION_COMMENT_MAX_L) {
+ if (trimmed.length < API.MODERATION_COMMENT_MIN_L || trimmed.length > API.MODERATION_COMMENT_MAX_L) {
throw ApiException(API.ERROR_BAD_COMMENT)
}
- return comment
+ return trimmed
}
}
diff --git a/CampfireServer/src/main/java/com/dzen/campfire/server/controllers/ControllerPending.kt b/CampfireServer/src/main/java/com/dzen/campfire/server/controllers/ControllerPending.kt
index 6bb4b4c1..f03cd597 100644
--- a/CampfireServer/src/main/java/com/dzen/campfire/server/controllers/ControllerPending.kt
+++ b/CampfireServer/src/main/java/com/dzen/campfire/server/controllers/ControllerPending.kt
@@ -1,10 +1,12 @@
package com.dzen.campfire.server.controllers
import com.dzen.campfire.api.API
+import com.dzen.campfire.api.models.publications.history.HistoryPublish
import com.dzen.campfire.api.models.publications.post.PageText
import com.dzen.campfire.api.models.publications.post.PublicationPost
import com.dzen.campfire.api.tools.ApiAccount
import com.dzen.campfire.api.tools.ApiException
+import com.dzen.campfire.server.tables.TAccounts
import com.dzen.campfire.server.tables.TPublications
import com.sup.dev.java.tools.ToolsThreads
import com.sup.dev.java_pc.sql.Database
@@ -29,7 +31,17 @@ object ControllerPending {
}
private fun posts(){
- val v = Database.select("ControllerPending.posts select", SqlQuerySelect(TPublications.NAME, TPublications.id, TPublications.fandom_id, TPublications.language_id, TPublications.tag_3, TPublications.creator_id)
+ val v = Database.select("ControllerPending.posts select",
+ SqlQuerySelect(
+ TPublications.NAME,
+ TPublications.id,
+ TPublications.fandom_id,
+ TPublications.language_id,
+ TPublications.tag_3,
+ TPublications.creator_id,
+ TAccounts.NAME(TPublications.creator_id),
+ TAccounts.IMAGE_ID(TPublications.creator_id)
+ )
.where(TPublications.status, "=", API.STATUS_PENDING)
.where(TPublications.publication_type, "=", API.PUBLICATION_TYPE_POST)
.where(TPublications.tag_4, "<", System.currentTimeMillis())
@@ -37,10 +49,12 @@ object ControllerPending {
while (v.hasNext()){
val id: Long = v.next()
- val fandomId:Long = v.next()
- val languageId:Long = v.next()
- val willNotify:Long = v.next()
- val creatorId:Long = v.next()
+ val fandomId: Long = v.next()
+ val languageId: Long = v.next()
+ val willNotify: Long = v.next()
+ val creatorId: Long = v.next()
+ val creatorName: String = v.next()
+ val creatorImageId: Long = v.next()
try {
val pub = ControllerPublications.getPublication(id, 0)!! as PublicationPost
@@ -63,6 +77,11 @@ object ControllerPending {
try {
ControllerAccounts.checkAccountBanned(creatorId, fandomId, languageId)
ControllerPost.publish(id, willNotify, creatorId)
+
+ ControllerPublicationsHistory.put(
+ id,
+ HistoryPublish(creatorId, creatorImageId, creatorName)
+ )
} catch (e: ApiException) {
Database.update("ControllerPending.posts update_2", SqlQueryUpdate(TPublications.NAME)
.where(TPublications.id, "=", id)
diff --git a/CampfireServer/src/main/java/com/dzen/campfire/server/controllers/ControllerPublications.kt b/CampfireServer/src/main/java/com/dzen/campfire/server/controllers/ControllerPublications.kt
index 583dfabc..0eabc6d3 100644
--- a/CampfireServer/src/main/java/com/dzen/campfire/server/controllers/ControllerPublications.kt
+++ b/CampfireServer/src/main/java/com/dzen/campfire/server/controllers/ControllerPublications.kt
@@ -97,7 +97,7 @@ object ControllerPublications {
return
}
if(OptimizerEffects.get(fromAccount.id, API.EFFECT_INDEX_MENTION_LOCK) != null) return
- val textV = text.replace(API.LINK_PROFILE_NAME, API.LINK_SHORT_PROFILE)
+ val textV = text.replace(API.LINK_PROFILE_NAME.asWeb(), API.LINK_SHORT_PROFILE)
val names = ArrayList()
val ids = ArrayList()
var i = 0
diff --git a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/accounts/EAccountsAchievementsRecount.kt b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/accounts/EAccountsAchievementsRecount.kt
index 28ac78f9..3b52a951 100644
--- a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/accounts/EAccountsAchievementsRecount.kt
+++ b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/accounts/EAccountsAchievementsRecount.kt
@@ -9,6 +9,7 @@ class EAccountsAchievementsRecount : RAccountsAchievementsRecount(0, "") {
override fun check() {
ControllerFandom.checkCan(apiAccount, API.LVL_ADMIN_DEBUG_RECOUNT_LEVEL_AND_KARMA)
+ comment = ControllerModeration.parseComment(comment, apiAccount.id)
}
override fun execute(): Response {
@@ -18,4 +19,4 @@ class EAccountsAchievementsRecount : RAccountsAchievementsRecount(0, "") {
return Response()
}
-}
\ No newline at end of file
+}
diff --git a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/accounts/EAccountsAdminBan.kt b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/accounts/EAccountsAdminBan.kt
index 2097da52..e811c69a 100644
--- a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/accounts/EAccountsAdminBan.kt
+++ b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/accounts/EAccountsAdminBan.kt
@@ -13,7 +13,7 @@ class EAccountsAdminBan() : RAccountsAdminBan(0, 0, "") {
ControllerFandom.checkCan(apiAccount, API.LVL_ADMIN_BAN)
if (banTime > 1000L * 60 * 60 * 24 * 365) throw ApiException(API.ERROR_ACCESS)
if (!ControllerFandom.checkCanModerate(apiAccount, accountId)) throw ApiException(E_LOW_KARMA_FORCE)
- ControllerModeration.parseComment(comment, apiAccount.id)
+ comment = ControllerModeration.parseComment(comment, apiAccount.id)
}
override fun execute(): Response {
diff --git a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/accounts/EAccountsAdminChangeName.kt b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/accounts/EAccountsAdminChangeName.kt
index 5de5ab8c..d0dd938b 100644
--- a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/accounts/EAccountsAdminChangeName.kt
+++ b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/accounts/EAccountsAdminChangeName.kt
@@ -12,7 +12,7 @@ class EAccountsAdminChangeName : RAccountsAdminChangeName(0L, "", "") {
override fun check() {
if (!ToolsText.isValidUsername(name)) throw ApiException(E_LOGIN_CHARS)
- ControllerModeration.parseComment(comment, apiAccount.id)
+ comment = ControllerModeration.parseComment(comment, apiAccount.id)
if (ControllerAccounts.getByName(name) != 0L) throw ApiException(E_LOGIN_NOT_ENABLED)
ControllerFandom.checkCan(apiAccount, API.LVL_ADMIN_USER_CHANGE_NAME)
ControllerFandom.checkCanModerate(apiAccount, accountId)
diff --git a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/accounts/EAccountsAdminEffectAdd.kt b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/accounts/EAccountsAdminEffectAdd.kt
index 6a3ca13d..11ca0add 100644
--- a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/accounts/EAccountsAdminEffectAdd.kt
+++ b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/accounts/EAccountsAdminEffectAdd.kt
@@ -9,7 +9,7 @@ import com.dzen.campfire.api.tools.ApiException
class EAccountsAdminEffectAdd : RAccountsAdminEffectAdd(0L, 0L, 0L, "") {
override fun check() {
- ControllerModeration.parseComment(comment, apiAccount.id)
+ comment = ControllerModeration.parseComment(comment, apiAccount.id)
ControllerFandom.checkCan(apiAccount, API.LVL_ADMIN_FANDOM_EFFECTS)
if(accountId == apiAccount.id) throw ApiException(API.ERROR_ACCESS)
}
diff --git a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/accounts/EAccountsAdminEffectRemove.kt b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/accounts/EAccountsAdminEffectRemove.kt
index 8f957c36..fd394408 100644
--- a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/accounts/EAccountsAdminEffectRemove.kt
+++ b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/accounts/EAccountsAdminEffectRemove.kt
@@ -20,7 +20,7 @@ class EAccountsAdminEffectRemove : RAccountsAdminEffectRemove(0L, "") {
var m = MAccountEffect()
override fun check() {
- ControllerModeration.parseComment(comment, apiAccount.id)
+ comment = ControllerModeration.parseComment(comment, apiAccount.id)
ControllerFandom.checkCan(apiAccount, API.LVL_ADMIN_FANDOM_EFFECTS)
val m = ControllerEffects.get(effectId)
diff --git a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/accounts/EAccountsAdminPunishmentsRemove.kt b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/accounts/EAccountsAdminPunishmentsRemove.kt
index 1542081b..e21fa9a0 100644
--- a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/accounts/EAccountsAdminPunishmentsRemove.kt
+++ b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/accounts/EAccountsAdminPunishmentsRemove.kt
@@ -13,7 +13,7 @@ class EAccountsAdminPunishmentsRemove : RAccountsAdminPunishmentsRemove(0, "") {
override fun check() {
punishment = ControllerAccounts.getPunishment(punishmentId)
if (punishment == null) throw ApiException(API.ERROR_GONE)
- ControllerModeration.parseComment(comment, apiAccount.id)
+ comment = ControllerModeration.parseComment(comment, apiAccount.id)
if (punishment!!.ownerId == apiAccount.id && apiAccount.id != 1L) throw ApiException(API.ERROR_ACCESS)
if (punishment!!.fromAccountId != apiAccount.id)
diff --git a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/accounts/EAccountsAdminRemoveDescription.kt b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/accounts/EAccountsAdminRemoveDescription.kt
index fd65cacc..7568ecf2 100644
--- a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/accounts/EAccountsAdminRemoveDescription.kt
+++ b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/accounts/EAccountsAdminRemoveDescription.kt
@@ -14,7 +14,7 @@ class EAccountsAdminRemoveDescription : RAccountsAdminRemoveDescription(0,"") {
override fun check() {
ControllerFandom.checkCan(apiAccount, API.LVL_ADMIN_USER_REMOVE_DESCRIPTION)
ControllerFandom.checkCanModerate(apiAccount, accountId)
- ControllerModeration.parseComment(comment, apiAccount.id)
+ comment = ControllerModeration.parseComment(comment, apiAccount.id)
}
override fun execute(): Response {
diff --git a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/accounts/EAccountsAdminRemoveLink.kt b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/accounts/EAccountsAdminRemoveLink.kt
index a104c53b..b817afe5 100644
--- a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/accounts/EAccountsAdminRemoveLink.kt
+++ b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/accounts/EAccountsAdminRemoveLink.kt
@@ -16,7 +16,7 @@ class EAccountsAdminRemoveLink : RAccountsAdminRemoveLink(0, 0, "") {
override fun check() {
ControllerFandom.checkCan(apiAccount, API.LVL_ADMIN_USER_REMOVE_LINK)
ControllerFandom.checkCanModerate(apiAccount, accountId)
- ControllerModeration.parseComment(comment, apiAccount.id)
+ comment = ControllerModeration.parseComment(comment, apiAccount.id)
}
override fun execute(): Response {
diff --git a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/accounts/EAccountsAdminStatusRemove.kt b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/accounts/EAccountsAdminStatusRemove.kt
index 90f141eb..8526ac9c 100644
--- a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/accounts/EAccountsAdminStatusRemove.kt
+++ b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/accounts/EAccountsAdminStatusRemove.kt
@@ -16,7 +16,7 @@ class EAccountsAdminStatusRemove : RAccountsAdminStatusRemove(0L, "") {
override fun check() {
ControllerFandom.checkCan(apiAccount, API.LVL_ADMIN_USER_REMOVE_STATUS)
ControllerFandom.checkCanModerate(apiAccount, accountId)
- ControllerModeration.parseComment(comment, apiAccount.id)
+ comment = ControllerModeration.parseComment(comment, apiAccount.id)
}
override fun execute(): Response {
diff --git a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/accounts/EAccountsClearReports.kt b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/accounts/EAccountsClearReports.kt
index 42751d52..faeb8118 100644
--- a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/accounts/EAccountsClearReports.kt
+++ b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/accounts/EAccountsClearReports.kt
@@ -8,6 +8,7 @@ import com.dzen.campfire.server.controllers.ControllerFandom
import com.dzen.campfire.api.tools.ApiException
import com.dzen.campfire.server.controllers.ControllerAccounts
import com.dzen.campfire.server.controllers.ControllerAdminVote
+import com.dzen.campfire.server.controllers.ControllerModeration
import com.dzen.campfire.server.tables.TAccounts
import com.sup.dev.java_pc.sql.Database
import com.sup.dev.java_pc.sql.SqlQueryUpdate
@@ -17,6 +18,7 @@ class EAccountsClearReports : RAccountsClearReports(0, "") {
@Throws(ApiException::class)
override fun check() {
ControllerFandom.checkCan(apiAccount, API.LVL_ADMIN_BAN)
+ comment = ControllerModeration.parseComment(comment, apiAccount.id)
}
override fun execute(): Response {
@@ -27,4 +29,4 @@ class EAccountsClearReports : RAccountsClearReports(0, "") {
}
-}
\ No newline at end of file
+}
diff --git a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/accounts/EAccountsKarmaRecount.kt b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/accounts/EAccountsKarmaRecount.kt
index 4dfc16b0..d08f3dd8 100644
--- a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/accounts/EAccountsKarmaRecount.kt
+++ b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/accounts/EAccountsKarmaRecount.kt
@@ -10,6 +10,7 @@ class EAccountsKarmaRecount : RAccountsKarmaRecount(0, "") {
override fun check() {
ControllerFandom.checkCan(apiAccount, API.LVL_ADMIN_DEBUG_RECOUNT_LEVEL_AND_KARMA)
+ comment = ControllerModeration.parseComment(comment, apiAccount.id)
}
override fun execute(): Response {
@@ -19,4 +20,4 @@ class EAccountsKarmaRecount : RAccountsKarmaRecount(0, "") {
return Response()
}
-}
\ No newline at end of file
+}
diff --git a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/accounts/EAccountsRemoveAvatar.kt b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/accounts/EAccountsRemoveAvatar.kt
index 39c84942..abdebeb4 100644
--- a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/accounts/EAccountsRemoveAvatar.kt
+++ b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/accounts/EAccountsRemoveAvatar.kt
@@ -15,6 +15,7 @@ class EAccountsRemoveAvatar : RAccountsRemoveAvatar(0, "") {
@Throws(ApiException::class)
override fun check() {
ControllerFandom.checkCan(apiAccount, API.LVL_ADMIN_USER_REMOVE_IMAGE)
+ comment = ControllerModeration.parseComment(comment, apiAccount.id)
}
override fun execute(): Response {
diff --git a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/accounts/EAccountsRemoveName.kt b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/accounts/EAccountsRemoveName.kt
index cf98d56a..e500fd36 100644
--- a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/accounts/EAccountsRemoveName.kt
+++ b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/accounts/EAccountsRemoveName.kt
@@ -18,6 +18,7 @@ class EAccountsRemoveName : RAccountsRemoveName(0, "") {
@Throws(ApiException::class)
override fun check() {
ControllerFandom.checkCan(apiAccount, API.LVL_ADMIN_USER_REMOVE_NAME)
+ comment = ControllerModeration.parseComment(comment, apiAccount.id)
}
override fun execute(): Response {
@@ -28,4 +29,4 @@ class EAccountsRemoveName : RAccountsRemoveName(0, "") {
}
-}
\ No newline at end of file
+}
diff --git a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/accounts/EAccountsRemoveTitleImage.kt b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/accounts/EAccountsRemoveTitleImage.kt
index e0eabe61..1fee1d65 100644
--- a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/accounts/EAccountsRemoveTitleImage.kt
+++ b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/accounts/EAccountsRemoveTitleImage.kt
@@ -17,6 +17,7 @@ class EAccountsRemoveTitleImage : RAccountsRemoveTitleImage(0, "") {
@Throws(ApiException::class)
override fun check() {
ControllerFandom.checkCan(apiAccount, API.LVL_ADMIN_USER_REMOVE_IMAGE)
+ comment = ControllerModeration.parseComment(comment, apiAccount.id)
}
override fun execute(): Response {
diff --git a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/activities/EActivitiesRelayRaceChange.kt b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/activities/EActivitiesRelayRaceChange.kt
index d336fd92..4ae4bc27 100644
--- a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/activities/EActivitiesRelayRaceChange.kt
+++ b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/activities/EActivitiesRelayRaceChange.kt
@@ -18,7 +18,7 @@ class EActivitiesRelayRaceChange : RActivitiesRelayRaceChange(0, "", "", "") {
private var activity = UserActivity()
override fun check() {
- ControllerModeration.parseComment(comment, apiAccount.id)
+ comment = ControllerModeration.parseComment(comment, apiAccount.id)
val activity = ControllerActivities.getActivity(activityId, apiAccount.id)
if(activity == null) throw ApiException(API.ERROR_GONE)
diff --git a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/activities/EActivitiesRelayRaceCreate.kt b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/activities/EActivitiesRelayRaceCreate.kt
index 874f177f..e57587b7 100644
--- a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/activities/EActivitiesRelayRaceCreate.kt
+++ b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/activities/EActivitiesRelayRaceCreate.kt
@@ -15,7 +15,7 @@ class EActivitiesRelayRaceCreate() : RActivitiesRelayRaceCreate(0,0,0,"","", "")
override fun check() {
name = ControllerCensor.cens(name)
description = ControllerCensor.cens(description)
- ControllerModeration.parseComment(comment, apiAccount.id)
+ comment = ControllerModeration.parseComment(comment, apiAccount.id)
ControllerFandom.checkCan(apiAccount, fandomId, languageId, API.LVL_MODERATOR_RELAY_RACE)
diff --git a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/activities/EActivitiesRemove.kt b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/activities/EActivitiesRemove.kt
index ea2971fe..ebb15e0a 100644
--- a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/activities/EActivitiesRemove.kt
+++ b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/activities/EActivitiesRemove.kt
@@ -15,7 +15,7 @@ class EActivitiesRemove : RActivitiesRemove(0, "") {
private var activity = UserActivity()
override fun check() {
- ControllerModeration.parseComment(comment, apiAccount.id)
+ comment = ControllerModeration.parseComment(comment, apiAccount.id)
val activity = ControllerActivities.getActivity(activityId, apiAccount.id)
if(activity == null) throw ApiException(API.ERROR_GONE)
diff --git a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/admins/EAdminVoteCancel.kt b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/admins/EAdminVoteCancel.kt
index 4d2de089..a8952954 100644
--- a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/admins/EAdminVoteCancel.kt
+++ b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/admins/EAdminVoteCancel.kt
@@ -14,6 +14,7 @@ class EAdminVoteCancel : RAdminVoteCancel(0, "") {
override fun check() {
ControllerFandom.checkCan(apiAccount, API.LVL_ADMIN_BAN)
+ comment = ControllerModeration.parseComment(comment, apiAccount.id)
}
override fun execute(): Response {
diff --git a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsAccept.kt b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsAccept.kt
index 9848b739..2bdefa95 100644
--- a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsAccept.kt
+++ b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsAccept.kt
@@ -32,6 +32,9 @@ class EFandomsAccept : RFandomsAccept(0, false, "") {
if (fandom == null) throw ApiException(API.ERROR_GONE)
if (fandom.status != API.STATUS_DRAFT) throw ApiException(E_BAD_STATUS)
if (fandom.creatorId == apiAccount.id) throw ApiException(E_SELF)
+ if (!accepted) {
+ comment = ControllerModeration.parseComment(comment, apiAccount.id)
+ }
this.fandom = fandom
}
}
diff --git a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsAdminChangeCategory.kt b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsAdminChangeCategory.kt
index 55bc0687..681cd987 100644
--- a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsAdminChangeCategory.kt
+++ b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsAdminChangeCategory.kt
@@ -20,7 +20,7 @@ class EFandomsAdminChangeCategory : RFandomsAdminChangeCategory(0, 0, "") {
fandom = ControllerFandom.getFandom(fandomId)
if (fandom == null) throw ApiException(API.ERROR_GONE)
if (fandom!!.status != API.STATUS_PUBLIC) throw ApiException(API.ERROR_ACCESS)
- ControllerModeration.parseComment(comment, apiAccount.id)
+ comment = ControllerModeration.parseComment(comment, apiAccount.id)
}
override fun execute(): Response {
diff --git a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsAdminChangeImage.kt b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsAdminChangeImage.kt
index fa52f97c..c6672709 100644
--- a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsAdminChangeImage.kt
+++ b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsAdminChangeImage.kt
@@ -23,7 +23,7 @@ class EFandomsAdminChangeImage : RFandomsAdminChangeImage(0, ByteArray(0), "") {
fandom = ControllerFandom.getFandom(fandomId)
if (fandom == null) throw ApiException(API.ERROR_GONE)
if(fandom!!.status != API.STATUS_PUBLIC) throw ApiException(API.ERROR_ACCESS)
- ControllerModeration.parseComment(comment, apiAccount.id)
+ comment = ControllerModeration.parseComment(comment, apiAccount.id)
}
override fun execute(): Response {
diff --git a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsAdminChangeName.kt b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsAdminChangeName.kt
index a1ef59e9..60c44ae6 100644
--- a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsAdminChangeName.kt
+++ b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsAdminChangeName.kt
@@ -23,7 +23,7 @@ class EFandomsAdminChangeName : RFandomsAdminChangeName(0, "", "") {
fandom = ControllerFandom.getFandom(fandomId)
if (fandom == null) throw ApiException(API.ERROR_GONE)
if (fandom!!.status != API.STATUS_PUBLIC) throw ApiException(API.ERROR_ACCESS)
- ControllerModeration.parseComment(comment, apiAccount.id)
+ comment = ControllerModeration.parseComment(comment, apiAccount.id)
}
override fun execute(): Response {
diff --git a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsAdminChangeParams.kt b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsAdminChangeParams.kt
index cf81c8ba..357c3bfc 100644
--- a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsAdminChangeParams.kt
+++ b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsAdminChangeParams.kt
@@ -31,7 +31,7 @@ class EFandomsAdminChangeParams : RFandomsAdminChangeParams(0, 0, 0, emptyArray(
) throw ApiException(E_BAD_TYPE)
if (paramsPosition < 1 || paramsPosition > 4) throw ApiException(E_BAD_TYPE)
- ControllerModeration.parseComment(comment, apiAccount.id)
+ comment = ControllerModeration.parseComment(comment, apiAccount.id)
}
override fun execute(): Response {
diff --git a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsAdminClose.kt b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsAdminClose.kt
index 134645ff..9898d193 100644
--- a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsAdminClose.kt
+++ b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsAdminClose.kt
@@ -24,7 +24,7 @@ class EFandomsAdminClose : RFandomsAdminClose(0, false, "") {
fandom = ControllerFandom.getFandom(fandomId)
if (fandom == null) throw ApiException(API.ERROR_GONE)
if (fandom!!.status != API.STATUS_PUBLIC) throw ApiException(API.ERROR_ACCESS)
- ControllerModeration.parseComment(comment, apiAccount.id)
+ comment = ControllerModeration.parseComment(comment, apiAccount.id)
}
override fun execute(): Response {
diff --git a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsAdminMakeModerator.kt b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsAdminMakeModerator.kt
index 74cba8f9..0a72ffca 100644
--- a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsAdminMakeModerator.kt
+++ b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsAdminMakeModerator.kt
@@ -28,7 +28,7 @@ class EFandomsAdminMakeModerator : RFandomsAdminMakeModerator(0, "") {
if (ControllerFandom.getModerators(publication.fandom.id, publication.fandom.languageId).size > 1) throw ApiException(E_FANDOM_HAVE_MODERATORS)
if (publication.creator.lvl < API.LVL_MODERATOR_BLOCK.lvl) throw ApiException(E_LOW_LVL)
if (publication.fandom.languageId == -1L) throw ApiException(API.ERROR_ACCESS)
- ControllerModeration.parseComment(comment, apiAccount.id)
+ comment = ControllerModeration.parseComment(comment, apiAccount.id)
}
override fun execute(): Response {
diff --git a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsAdminRemove.kt b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsAdminRemove.kt
index 3c7e32cc..4014a38d 100644
--- a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsAdminRemove.kt
+++ b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsAdminRemove.kt
@@ -27,7 +27,7 @@ class EFandomsAdminRemove : RFandomsAdminRemove(0, "") {
fandom = ControllerFandom.getFandom(fandomId)
if (fandom == null) throw ApiException(API.ERROR_GONE)
if (fandom!!.status != API.STATUS_PUBLIC) throw ApiException(API.ERROR_ACCESS)
- ControllerModeration.parseComment(comment, apiAccount.id)
+ comment = ControllerModeration.parseComment(comment, apiAccount.id)
}
override fun execute(): Response {
diff --git a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsAdminRemoveModerator.kt b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsAdminRemoveModerator.kt
index 3dc1696c..5c34991a 100644
--- a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsAdminRemoveModerator.kt
+++ b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsAdminRemoveModerator.kt
@@ -22,7 +22,7 @@ class EFandomsAdminRemoveModerator : RFandomsAdminRemoveModerator(0, 0, 0, "") {
ControllerFandom.checkCan(apiAccount, API.LVL_ADMIN_REMOVE_MODERATOR)
karma30 = ControllerFandom.getKarma30(accountId, fandomId, languageId)
if (karma30 < API.LVL_MODERATOR_BLOCK.karmaCount) throw ApiException(E_NOT_MODERATOR)
- ControllerModeration.parseComment(comment, apiAccount.id)
+ comment = ControllerModeration.parseComment(comment, apiAccount.id)
}
override fun execute(): Response {
diff --git a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsAdminViceroyAssign.kt b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsAdminViceroyAssign.kt
index f230bd42..cb11ee0e 100644
--- a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsAdminViceroyAssign.kt
+++ b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsAdminViceroyAssign.kt
@@ -23,7 +23,7 @@ class EFandomsAdminViceroyAssign : RFandomsAdminViceroyAssign(0, 0, 0, "") {
val fandom = ControllerFandom.getFandom(fandomId)
if (fandom == null) throw ApiException(API.ERROR_GONE)
if (fandom.status != API.STATUS_PUBLIC) throw ApiException(API.ERROR_ACCESS)
- ControllerModeration.parseComment(comment, apiAccount.id)
+ comment = ControllerModeration.parseComment(comment, apiAccount.id)
fandom.languageId = languageId
this.fandom = fandom
diff --git a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsAdminViceroyRemove.kt b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsAdminViceroyRemove.kt
index 19ab6942..89f84b11 100644
--- a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsAdminViceroyRemove.kt
+++ b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsAdminViceroyRemove.kt
@@ -20,7 +20,7 @@ class EFandomsAdminViceroyRemove : RFandomsAdminViceroyRemove(0, 0, "") {
val fandom = ControllerFandom.getFandom(fandomId)
if (fandom == null) throw ApiException(API.ERROR_GONE)
if (fandom.status != API.STATUS_PUBLIC) throw ApiException(API.ERROR_ACCESS)
- ControllerModeration.parseComment(comment, apiAccount.id)
+ comment = ControllerModeration.parseComment(comment, apiAccount.id)
fandom.languageId = languageId
this.fandom = fandom
diff --git a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsModerationBlock.kt b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsModerationBlock.kt
index e8459fcd..c373ac06 100644
--- a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsModerationBlock.kt
+++ b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsModerationBlock.kt
@@ -57,7 +57,7 @@ class EFandomsModerationBlock : RFandomsModerationBlock(0, 0, false, "", false,
)
) throw ApiException(E_LOW_KARMA_FORCE)
if (blockTime > 1000L * 60 * 60 * 24 * 365) throw ApiException(API.ERROR_ACCESS)
- ControllerModeration.parseComment(comment, apiAccount.id)
+ comment = ControllerModeration.parseComment(comment, apiAccount.id)
val canBlockTag = ControllerVahter.isCanBlock(apiAccount.id)
if(canBlockTag != -1L){
diff --git a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsModerationChangeImageBackground.kt b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsModerationChangeImageBackground.kt
index a0f65551..240c3b8f 100644
--- a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsModerationChangeImageBackground.kt
+++ b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsModerationChangeImageBackground.kt
@@ -19,7 +19,7 @@ class EFandomsModerationChangeImageBackground : RFandomsModerationChangeImageBac
if (fandom == null) throw ApiException(API.ERROR_GONE)
if (fandom!!.status != API.STATUS_PUBLIC) throw ApiException(API.ERROR_ACCESS)
- ControllerModeration.parseComment(comment, apiAccount.id)
+ comment = ControllerModeration.parseComment(comment, apiAccount.id)
if(image != null) {
if (image!!.size > API.CHAT_IMG_BACKGROUND_WEIGHT) throw ApiException(E_BAD_IMG_WEIGHT, " " + image!!.size + " > " + API.ACCOUNT_IMG_WEIGHT)
if (!ToolsImage.checkImageMaxScaleUnknownType(image!!, API.CHAT_IMG_BACKGROUND_W, API.CHAT_IMG_BACKGROUND_H, true, true, true)) throw ApiException(E_BAD_IMG_SIDES)
diff --git a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsModerationChangeImageTitle.kt b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsModerationChangeImageTitle.kt
index d19df49e..d363bf8b 100644
--- a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsModerationChangeImageTitle.kt
+++ b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsModerationChangeImageTitle.kt
@@ -17,7 +17,7 @@ class EFandomsModerationChangeImageTitle : RFandomsModerationChangeImageTitle(0,
fandom = ControllerFandom.getFandom(fandomId)
if (fandom == null) throw ApiException(API.ERROR_GONE)
if (fandom!!.status != API.STATUS_PUBLIC) throw ApiException(API.ERROR_ACCESS)
- ControllerModeration.parseComment(comment, apiAccount.id)
+ comment = ControllerModeration.parseComment(comment, apiAccount.id)
diff --git a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsModerationChatChange.kt b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsModerationChatChange.kt
index b33b6548..77012f83 100644
--- a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsModerationChatChange.kt
+++ b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsModerationChatChange.kt
@@ -25,7 +25,7 @@ class EFandomsModerationChatChange : RFandomsModerationChatChange(0, "", "", "",
override fun check() {
name = ControllerCensor.cens(name)
text = ControllerCensor.cens(text)
- ControllerModeration.parseComment(comment, apiAccount.id)
+ comment = ControllerModeration.parseComment(comment, apiAccount.id)
val v = Database.select("EFandomsModerationChatChange select", SqlQuerySelect(TChats.NAME, TChats.fandom_id, TChats.language_id, TChats.name, TChats.image_id)
.where(TChats.id, "=", chatId)
diff --git a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsModerationChatCreate.kt b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsModerationChatCreate.kt
index 9941e40b..8c0f5a50 100644
--- a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsModerationChatCreate.kt
+++ b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsModerationChatCreate.kt
@@ -17,7 +17,7 @@ class EFandomsModerationChatCreate : RFandomsModerationChatCreate(0, 0, "", "",
@Throws(ApiException::class)
override fun check() {
- ControllerModeration.parseComment(comment, apiAccount.id)
+ comment = ControllerModeration.parseComment(comment, apiAccount.id)
name = ControllerCensor.cens(name)
text = ControllerCensor.cens(text)
ControllerFandom.checkCan(apiAccount, fandomId, languageId, API.LVL_MODERATOR_CHATS)
diff --git a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsModerationChatRemove.kt b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsModerationChatRemove.kt
index 4a2277c5..917ddbda 100644
--- a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsModerationChatRemove.kt
+++ b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsModerationChatRemove.kt
@@ -21,7 +21,7 @@ class EFandomsModerationChatRemove : RFandomsModerationChatRemove(0, "") {
@Throws(ApiException::class)
override fun check() {
- ControllerModeration.parseComment(comment, apiAccount.id)
+ comment = ControllerModeration.parseComment(comment, apiAccount.id)
val v = Database.select("EFandomsModerationChatRemove select", SqlQuerySelect(TChats.NAME, TChats.fandom_id, TChats.language_id, TChats.name)
.where(TChats.id, "=", chatId)
diff --git a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsModerationDescriptionChange.kt b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsModerationDescriptionChange.kt
index 785c866a..5b165bfd 100644
--- a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsModerationDescriptionChange.kt
+++ b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsModerationDescriptionChange.kt
@@ -18,7 +18,7 @@ class EFandomsModerationDescriptionChange : RFandomsModerationDescriptionChange(
if (fandom == null) throw ApiException(API.ERROR_GONE)
if(fandom!!.status != API.STATUS_PUBLIC) throw ApiException(API.ERROR_ACCESS)
if(description.length > API.FANDOM_DESCRIPTION_MAX_L) throw ApiException(E_BAD_TEXT_LENGTH)
- ControllerModeration.parseComment(comment, apiAccount.id)
+ comment = ControllerModeration.parseComment(comment, apiAccount.id)
}
override fun execute(): Response {
diff --git a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsModerationForgive.kt b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsModerationForgive.kt
index 94e8307c..dcf537a0 100644
--- a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsModerationForgive.kt
+++ b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsModerationForgive.kt
@@ -12,7 +12,7 @@ class EFandomsModerationForgive : RFandomsModerationForgive(0, 0, 0, "") {
override fun check() {
ControllerFandom.checkCan(apiAccount, fandomId, languageId, API.LVL_MODERATOR_BLOCK)
- ControllerModeration.parseComment(comment, apiAccount.id)
+ comment = ControllerModeration.parseComment(comment, apiAccount.id)
}
override fun execute(): Response {
diff --git a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsModerationGalleryAdd.kt b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsModerationGalleryAdd.kt
index 8e7a5d1c..56b20555 100644
--- a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsModerationGalleryAdd.kt
+++ b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsModerationGalleryAdd.kt
@@ -20,7 +20,7 @@ class EFandomsModerationGalleryAdd : RFandomsModerationGalleryAdd(0, 0, null, ""
if(ControllerCollisions.getCollisionsCount(fandomId,languageId, API.COLLISION_FANDOM_GALLERY) >= API.FANDOM_GALLERY_MAX) throw ApiException(E_TOO_MANY_ITEMS)
if(image == null || image!!.size > API.FANDOM_GALLERY_MAX_WEIGHT) throw ApiException(E_BAD_IMAGE)
if(!ToolsImage.checkImageMaxScaleUnknownType(image!!, API.FANDOM_GALLERY_MAX_SIDE, API.FANDOM_GALLERY_MAX_SIDE, true, false, true)) throw ApiException(E_BAD_IMAGE)
- ControllerModeration.parseComment(comment, apiAccount.id)
+ comment = ControllerModeration.parseComment(comment, apiAccount.id)
}
override fun execute(): Response {
diff --git a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsModerationGalleryRemove.kt b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsModerationGalleryRemove.kt
index cc6bb621..ddfea78b 100644
--- a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsModerationGalleryRemove.kt
+++ b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsModerationGalleryRemove.kt
@@ -16,7 +16,7 @@ class EFandomsModerationGalleryRemove : RFandomsModerationGalleryRemove(0, 0, 0,
fandom = ControllerFandom.getFandom(fandomId)
if (fandom == null) throw ApiException(API.ERROR_GONE)
if (fandom!!.status != API.STATUS_PUBLIC) throw ApiException(API.ERROR_ACCESS)
- ControllerModeration.parseComment(comment, apiAccount.id)
+ comment = ControllerModeration.parseComment(comment, apiAccount.id)
}
override fun execute(): Response {
diff --git a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsModerationImportant.kt b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsModerationImportant.kt
index 079a9019..8ec667eb 100644
--- a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsModerationImportant.kt
+++ b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsModerationImportant.kt
@@ -26,7 +26,7 @@ class EFandomsModerationImportant : RFandomsModerationImportant(0, false, "") {
API.LVL_MODERATOR_IMPORTANT
)
if (publication.status != API.STATUS_PUBLIC) throw ApiException(API.ERROR_ACCESS)
- ControllerModeration.parseComment(comment, apiAccount.id)
+ comment = ControllerModeration.parseComment(comment, apiAccount.id)
}
override fun execute(): Response {
diff --git a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsModerationLinkAdd.kt b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsModerationLinkAdd.kt
index 6ebc987a..b302a8b4 100644
--- a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsModerationLinkAdd.kt
+++ b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsModerationLinkAdd.kt
@@ -21,7 +21,7 @@ class EFandomsModerationLinkAdd : RFandomsModerationLinkAdd(0, 0, "", "", 0, "")
if(url.length > API.FANDOM_LINKS_URL_MAX_L) throw ApiException(E_BAD_SIZE)
if(title.length > API.FANDOM_LINKS_TITLE_MAX_L) throw ApiException(E_BAD_SIZE)
if(ControllerCollisions.getCollisionsCount(fandomId,languageId, API.COLLISION_FANDOM_LINK) >= API.FANDOM_LINKS_MAX) throw ApiException(E_BAD_COUNT)
- ControllerModeration.parseComment(comment, apiAccount.id)
+ comment = ControllerModeration.parseComment(comment, apiAccount.id)
}
override fun execute(): Response {
diff --git a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsModerationLinkChange.kt b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsModerationLinkChange.kt
index 133a3f68..3b3ad81b 100644
--- a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsModerationLinkChange.kt
+++ b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsModerationLinkChange.kt
@@ -23,7 +23,7 @@ class EFandomsModerationLinkChange : RFandomsModerationLinkChange(0, 0, 0, "", "
if (fandom!!.status != API.STATUS_PUBLIC) throw ApiException(API.ERROR_ACCESS)
if (url.length > API.FANDOM_LINKS_URL_MAX_L) throw ApiException(E_BAD_SIZE)
if (title.length > API.FANDOM_LINKS_TITLE_MAX_L) throw ApiException(E_BAD_SIZE)
- ControllerModeration.parseComment(comment, apiAccount.id)
+ comment = ControllerModeration.parseComment(comment, apiAccount.id)
}
override fun execute(): Response {
diff --git a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsModerationLinkRemove.kt b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsModerationLinkRemove.kt
index 5aa41bc0..ae971fc8 100644
--- a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsModerationLinkRemove.kt
+++ b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsModerationLinkRemove.kt
@@ -27,7 +27,7 @@ class EFandomsModerationLinkRemove : RFandomsModerationLinkRemove(0, "") {
if (fandom == null) throw ApiException(API.ERROR_GONE)
if (fandom!!.status != API.STATUS_PUBLIC) throw ApiException(API.ERROR_ACCESS)
if (collisionType != API.COLLISION_FANDOM_LINK) throw ApiException(E_BAD_TYPE)
- ControllerModeration.parseComment(comment, apiAccount.id)
+ comment = ControllerModeration.parseComment(comment, apiAccount.id)
}
override fun execute(): Response {
diff --git a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsModerationNames.kt b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsModerationNames.kt
index 6b0c0bc2..60286bfd 100644
--- a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsModerationNames.kt
+++ b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsModerationNames.kt
@@ -16,7 +16,7 @@ class EFandomsModerationNames : RFandomsModerationNames(0, 0, emptyArray(), "")
names[i] = ControllerCensor.cens(names[i])
if (names[i].length > API.FANDOM_NAMES_MAX_L) throw ApiException(E_BAD_SIZE)
}
- ControllerModeration.parseComment(comment, apiAccount.id)
+ comment = ControllerModeration.parseComment(comment, apiAccount.id)
}
override fun execute(): Response {
diff --git a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsModerationToDrafts.kt b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsModerationToDrafts.kt
index b1b38003..fa81a1e8 100644
--- a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsModerationToDrafts.kt
+++ b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/fandoms/EFandomsModerationToDrafts.kt
@@ -37,7 +37,7 @@ class EFandomsModerationToDrafts : RFandomsModerationToDrafts(0, "") {
} else if (publication is QuestDetails) {
ControllerFandom.checkCan(apiAccount, API.LVL_QUEST_MODERATOR)
}
- ControllerModeration.parseComment(comment, apiAccount.id)
+ comment = ControllerModeration.parseComment(comment, apiAccount.id)
}
override fun execute(): Response {
diff --git a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/post/EPostAdminRemoveMedia.kt b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/post/EPostAdminRemoveMedia.kt
index 4c1d9670..d83edacb 100644
--- a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/post/EPostAdminRemoveMedia.kt
+++ b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/post/EPostAdminRemoveMedia.kt
@@ -21,7 +21,7 @@ class EPostAdminRemoveMedia : RPostAdminRemoveMedia(0, "") {
if(publication.fandom.languageId == -1L) throw ApiException(API.ERROR_ACCESS)
if(publication.status != API.STATUS_PUBLIC) throw ApiException(API.ERROR_ACCESS)
- ControllerModeration.parseComment(comment, apiAccount.id)
+ comment = ControllerModeration.parseComment(comment, apiAccount.id)
ControllerFandom.checkCan(apiAccount, API.LVL_ADMIN_REMOVE_MEDIA)
}
diff --git a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/post/EPostChangeFandom.kt b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/post/EPostChangeFandom.kt
index 01ad602a..fe944295 100644
--- a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/post/EPostChangeFandom.kt
+++ b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/post/EPostChangeFandom.kt
@@ -28,7 +28,7 @@ class EPostChangeFandom : RPostChangeFandom(0, 0, 0, "") {
if(publication.status != API.STATUS_DRAFT && publication.status != API.STATUS_PUBLIC) throw ApiException(API.ERROR_ACCESS)
if(publication.creator.id != apiAccount.id){
- ControllerModeration.parseComment(comment, apiAccount.id)
+ comment = ControllerModeration.parseComment(comment, apiAccount.id)
ControllerFandom.checkCan(apiAccount, API.LVL_ADMIN_POST_CHANGE_FANDOM)
}else{
ControllerAccounts.checkAccountBanned(apiAccount.id)
diff --git a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/post/EPostCloseModerator.kt b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/post/EPostCloseModerator.kt
index 41d1a45f..0171cfab 100644
--- a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/post/EPostCloseModerator.kt
+++ b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/post/EPostCloseModerator.kt
@@ -17,7 +17,7 @@ class EPostCloseModerator : RPostCloseModerator(0, "") {
var publication = PublicationPost()
override fun check() {
- ControllerModeration.parseComment(comment, apiAccount.id)
+ comment = ControllerModeration.parseComment(comment, apiAccount.id)
val publication = ControllerPublications.getPublication(publicationId, apiAccount.id)
if(publication == null) throw ApiException(API.ERROR_GONE)
if(publication.status != API.STATUS_PUBLIC) throw ApiException(API.ERROR_GONE)
diff --git a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/post/EPostCloseNoModerator.kt b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/post/EPostCloseNoModerator.kt
index bbfcf578..97794f68 100644
--- a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/post/EPostCloseNoModerator.kt
+++ b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/post/EPostCloseNoModerator.kt
@@ -17,7 +17,7 @@ class EPostCloseNoModerator : RPostCloseNoModerator(0, "") {
var publication = PublicationPost()
override fun check() {
- ControllerModeration.parseComment(comment, apiAccount.id)
+ comment = ControllerModeration.parseComment(comment, apiAccount.id)
val publication = ControllerPublications.getPublication(publicationId, apiAccount.id)
if(publication == null) throw ApiException(API.ERROR_GONE)
if(publication.status != API.STATUS_PUBLIC) throw ApiException(API.ERROR_GONE)
diff --git a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/post/EPostMakeMultilingualModeratorNot.kt b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/post/EPostMakeMultilingualModeratorNot.kt
index 7a611661..fb26498a 100644
--- a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/post/EPostMakeMultilingualModeratorNot.kt
+++ b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/post/EPostMakeMultilingualModeratorNot.kt
@@ -25,7 +25,7 @@ class EPostMakeMultilingualModeratorNot : RPostMakeMultilingualModeratorNot(0, "
ControllerFandom.checkCan(apiAccount, publication.fandom.id, publication.fandom.languageId, API.LVL_MODERATOR_TO_DRAFTS)
if (!ControllerFandom.checkCanModerate(apiAccount, publication.creator.id, publication.fandom.id, publication.fandom.languageId)) throw ApiException(E_LOW_KARMA_FORCE)
- ControllerModeration.parseComment(comment, apiAccount.id)
+ comment = ControllerModeration.parseComment(comment, apiAccount.id)
}
diff --git a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/post/EPostPendingPublish.kt b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/post/EPostPendingPublish.kt
index 0540094b..ea31921e 100644
--- a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/post/EPostPendingPublish.kt
+++ b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/post/EPostPendingPublish.kt
@@ -1,11 +1,13 @@
package com.dzen.campfire.server.executors.post
import com.dzen.campfire.api.API
+import com.dzen.campfire.api.models.publications.history.HistoryPublish
import com.dzen.campfire.api.models.publications.post.PublicationPost
import com.dzen.campfire.api.requests.post.RPostPendingPublish
import com.dzen.campfire.server.controllers.ControllerAccounts
import com.dzen.campfire.server.controllers.ControllerPost
import com.dzen.campfire.server.controllers.ControllerPublications
+import com.dzen.campfire.server.controllers.ControllerPublicationsHistory
import com.dzen.campfire.api.tools.ApiException
class EPostPendingPublish : RPostPendingPublish(0) {
@@ -28,6 +30,12 @@ class EPostPendingPublish : RPostPendingPublish(0) {
override fun execute(): Response {
ControllerPost.publish(publicationId, publication.tag_3, publication.creator.id)
+
+ ControllerPublicationsHistory.put(
+ publicationId,
+ HistoryPublish(apiAccount.id, apiAccount.imageId, apiAccount.name)
+ )
+
return Response()
}
diff --git a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/post/EPostPinFandom.kt b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/post/EPostPinFandom.kt
index e1211882..2fa4c91a 100644
--- a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/post/EPostPinFandom.kt
+++ b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/post/EPostPinFandom.kt
@@ -12,7 +12,7 @@ import com.dzen.campfire.api.tools.ApiException
class EPostPinFandom : RPostPinFandom(0, 0, 0, "") {
override fun check() {
- ControllerModeration.parseComment(comment, apiAccount.id)
+ comment = ControllerModeration.parseComment(comment, apiAccount.id)
if (postId > 0L) {
val publication = ControllerPublications.getPublication(postId, apiAccount.id)
diff --git a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/post/EPostPublication.kt b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/post/EPostPublication.kt
index 5b58f2fc..c80d6634 100644
--- a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/post/EPostPublication.kt
+++ b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/post/EPostPublication.kt
@@ -5,6 +5,7 @@ import com.dzen.campfire.api.models.fandoms.Fandom
import com.dzen.campfire.api.models.notifications.post.NotificationModerationPostTags
import com.dzen.campfire.api.models.publications.history.HistoryAdminChangeTags
import com.dzen.campfire.api.models.publications.history.HistoryChangeTags
+import com.dzen.campfire.api.models.publications.history.HistoryPending
import com.dzen.campfire.api.models.publications.history.HistoryPublish
import com.dzen.campfire.api.models.publications.moderations.posts.ModerationPostTags
import com.dzen.campfire.api.models.publications.post.PageText
@@ -39,7 +40,7 @@ class EPostPublication : RPostPublication(0, emptyArray(), "", false, 0, false,
if (publication!!.creator.id != apiAccount.id && publication!!.status != API.STATUS_PUBLIC) throw ApiException(API.ERROR_ACCESS)
if (publication!!.creator.id != apiAccount.id && pendingTime > 0) throw ApiException(API.ERROR_ACCESS)
if (publication!!.creator.id != apiAccount.id) {
- ControllerModeration.parseComment(comment, apiAccount.id)
+ comment = ControllerModeration.parseComment(comment, apiAccount.id)
ControllerFandom.checkCan(apiAccount, publication!!.fandom.id, publication!!.fandom.languageId, API.LVL_MODERATOR_POST_TAGS)
}
if (publication!!.publicationType != API.PUBLICATION_TYPE_POST) throw ApiException(E_BAD_TYPE)
@@ -132,7 +133,17 @@ class EPostPublication : RPostPublication(0, emptyArray(), "", false, 0, false,
ControllerAchievements.addAchievementWithCheck(apiAccount.id, API.ACHI_FIRST_POST)
ControllerPublications.watchComments(apiAccount.id, publicationId, true)
- ControllerPublicationsHistory.put(publicationId, HistoryPublish(apiAccount.id, apiAccount.imageId, apiAccount.name))
+ if (pendingTime == 0L) {
+ ControllerPublicationsHistory.put(
+ publicationId,
+ HistoryPublish(apiAccount.id, apiAccount.imageId, apiAccount.name)
+ )
+ } else {
+ ControllerPublicationsHistory.put(
+ publicationId,
+ HistoryPending(apiAccount.id, apiAccount.imageId, apiAccount.name, pendingTime)
+ )
+ }
ControllerAchievements.addAchievementWithCheck(
ControllerViceroy.getViceroyId(publication!!.fandom.id, publication!!.fandom.languageId),
diff --git a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/post/EPostSetNsfwModerator.kt b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/post/EPostSetNsfwModerator.kt
index 1833153b..a311151b 100644
--- a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/post/EPostSetNsfwModerator.kt
+++ b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/post/EPostSetNsfwModerator.kt
@@ -17,7 +17,7 @@ class EPostSetNsfwModerator : RPostSetNsfwModerator(0, false, "") {
var publication = PublicationPost()
override fun check() {
- ControllerModeration.parseComment(comment, apiAccount.id)
+ comment = ControllerModeration.parseComment(comment, apiAccount.id)
val publication = ControllerPublications.getPublication(publicationId, apiAccount.id)
?: throw ApiException(API.ERROR_GONE)
if (publication.status != API.STATUS_PUBLIC) {
diff --git a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/project/EProjectMakeHelloPost.kt b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/project/EProjectMakeHelloPost.kt
index 509d685f..feeedb9d 100644
--- a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/project/EProjectMakeHelloPost.kt
+++ b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/project/EProjectMakeHelloPost.kt
@@ -13,20 +13,10 @@ import com.sup.dev.java_pc.sql.Database
class EProjectMakeHelloPost : RProjectMakeHelloPost("", false, "", 0) {
- companion object {
- val hash = HashMap()
- var TIME = 1000L * 60 * 60
- }
-
override fun check() {
}
override fun execute(): Response {
-
- if (!hash.containsKey(languageId)) hash.put(languageId, 0)
-
- if (hash[languageId]!! > System.currentTimeMillis() - TIME) return Response(0)
- hash[languageId] = System.currentTimeMillis()
ControllerAccounts.checkAccountBanned(apiAccount.id)
val fandomId = API.FANDOM_CAMPFIRE_HELLO_ID
@@ -64,4 +54,4 @@ class EProjectMakeHelloPost : RProjectMakeHelloPost("", false, "", 0) {
return Response(publication.id)
}
-}
\ No newline at end of file
+}
diff --git a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/publications/EPublicationsAdminRestore.kt b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/publications/EPublicationsAdminRestore.kt
index fe972bb6..891d43a1 100644
--- a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/publications/EPublicationsAdminRestore.kt
+++ b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/publications/EPublicationsAdminRestore.kt
@@ -34,7 +34,7 @@ class EPublicationsAdminRestore : RPublicationsAdminRestore(0, "", true) {
if (apiAccount.id != 1L && publicationModeration!!.creator.id == apiAccount.id) throw ApiException(E_SELF)
publication = ControllerPublications.getPublication(((publicationModeration as PublicationModeration).moderation as ModerationBlock).publicationId, apiAccount.id)
if (apiAccount.id != 1L && publication!!.creator.id == apiAccount.id) throw ApiException(E_SELF)
- ControllerModeration.parseComment(comment, apiAccount.id)
+ comment = ControllerModeration.parseComment(comment, apiAccount.id)
}
override fun execute(): Response {
diff --git a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/publications/EPublicationsAdminRestoreDeepBlock.kt b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/publications/EPublicationsAdminRestoreDeepBlock.kt
index 5613897a..e290d42c 100644
--- a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/publications/EPublicationsAdminRestoreDeepBlock.kt
+++ b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/publications/EPublicationsAdminRestoreDeepBlock.kt
@@ -6,6 +6,7 @@ import com.dzen.campfire.api.models.publications.Publication
import com.dzen.campfire.api.models.publications.history.HistoryAdminNotDeepBlock
import com.dzen.campfire.api.requests.publications.RPublicationsAdminRestoreDeepBlock
import com.dzen.campfire.server.controllers.ControllerFandom
+import com.dzen.campfire.server.controllers.ControllerModeration
import com.dzen.campfire.server.controllers.ControllerNotifications
import com.dzen.campfire.server.controllers.ControllerPublications
import com.dzen.campfire.server.controllers.ControllerPublicationsHistory
@@ -23,6 +24,7 @@ class EPublicationsAdminRestoreDeepBlock : RPublicationsAdminRestoreDeepBlock(0,
override fun check() {
ControllerFandom.checkCan(apiAccount, API.LVL_PROTOADMIN)
publication = ControllerPublications.getPublication(publicationId, apiAccount.id)
+ comment = ControllerModeration.parseComment(comment, apiAccount.id)
}
override fun execute(): Response {
@@ -44,4 +46,4 @@ class EPublicationsAdminRestoreDeepBlock : RPublicationsAdminRestoreDeepBlock(0,
}
-}
\ No newline at end of file
+}
diff --git a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/rubrics/ERubricsModerChangeName.kt b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/rubrics/ERubricsModerChangeName.kt
index 1d28d9b0..ca9dcb65 100644
--- a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/rubrics/ERubricsModerChangeName.kt
+++ b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/rubrics/ERubricsModerChangeName.kt
@@ -20,7 +20,7 @@ class ERubricsModerChangeName : RRubricsModerChangeName(0, "", "") {
@Throws(ApiException::class)
override fun check() {
newName = ControllerCensor.cens(newName)
- ControllerModeration.parseComment(comment, apiAccount.id)
+ comment = ControllerModeration.parseComment(comment, apiAccount.id)
val rubricX = ControllerRubrics.getRubric(rubricId)
if (rubricX == null || rubricX.status != API.STATUS_PUBLIC) throw ApiException(API.ERROR_ACCESS)
rubric = rubricX
diff --git a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/rubrics/ERubricsModerChangeOwner.kt b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/rubrics/ERubricsModerChangeOwner.kt
index 95541dbe..71d90e1e 100644
--- a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/rubrics/ERubricsModerChangeOwner.kt
+++ b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/rubrics/ERubricsModerChangeOwner.kt
@@ -23,7 +23,7 @@ class ERubricsModerChangeOwner : RRubricsModerChangeOwner(0, 0, "") {
@Throws(ApiException::class)
override fun check() {
- ControllerModeration.parseComment(comment, apiAccount.id)
+ comment = ControllerModeration.parseComment(comment, apiAccount.id)
val rubricX = ControllerRubrics.getRubric(rubricId)
if (rubricX == null || rubricX.status != API.STATUS_PUBLIC) throw ApiException(API.ERROR_ACCESS)
rubric = rubricX
diff --git a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/rubrics/ERubricsModerCreate.kt b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/rubrics/ERubricsModerCreate.kt
index 6a05fdea..58428b4e 100644
--- a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/rubrics/ERubricsModerCreate.kt
+++ b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/rubrics/ERubricsModerCreate.kt
@@ -20,7 +20,7 @@ class ERubricsModerCreate : RRubricsModerCreate(0, 0, "", 0, "") {
@Throws(ApiException::class)
override fun check() {
name = ControllerCensor.cens(name)
- ControllerModeration.parseComment(comment, apiAccount.id)
+ comment = ControllerModeration.parseComment(comment, apiAccount.id)
ControllerFandom.checkCan(apiAccount, fandomId, languageId, API.LVL_MODERATOR_RUBRIC)
val fandomX = ControllerFandom.getFandom(fandomId)
if (fandomX == null || fandomX.status != API.STATUS_PUBLIC) throw ApiException(API.ERROR_ACCESS)
diff --git a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/rubrics/ERubricsModerRemove.kt b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/rubrics/ERubricsModerRemove.kt
index a5e7b240..9f755559 100644
--- a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/rubrics/ERubricsModerRemove.kt
+++ b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/rubrics/ERubricsModerRemove.kt
@@ -19,7 +19,7 @@ class ERubricsModerRemove : RRubricsModerRemove(0, "") {
@Throws(ApiException::class)
override fun check() {
- ControllerModeration.parseComment(comment, apiAccount.id)
+ comment = ControllerModeration.parseComment(comment, apiAccount.id)
val rubricX = ControllerRubrics.getRubric(rubricId)
if (rubricX == null || rubricX.status != API.STATUS_PUBLIC) throw ApiException(API.ERROR_ACCESS)
rubric = rubricX
diff --git a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/rubrics/ERubricsMoveFandom.kt b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/rubrics/ERubricsMoveFandom.kt
index 313f4c0c..09eb2a5e 100644
--- a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/rubrics/ERubricsMoveFandom.kt
+++ b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/rubrics/ERubricsMoveFandom.kt
@@ -7,6 +7,7 @@ import com.dzen.campfire.api.models.publications.moderations.rubrics.ModerationR
import com.dzen.campfire.api.requests.rubrics.RRubricsMoveFandom
import com.dzen.campfire.api.tools.ApiException
import com.dzen.campfire.server.controllers.ControllerFandom
+import com.dzen.campfire.server.controllers.ControllerModeration
import com.dzen.campfire.server.controllers.ControllerNotifications
import com.dzen.campfire.server.controllers.ControllerPublications
import com.dzen.campfire.server.controllers.ControllerRubrics
@@ -33,6 +34,8 @@ class ERubricsMoveFandom : RRubricsMoveFandom(0, 0, 0, "") {
throw ApiException(API.ERROR_GONE, "Fandom does not exist")
if (! API.isLanguageExsit(languageId))
throw ApiException(API.ERROR_GONE, "Language does not exist")
+
+ moderatorComment = ControllerModeration.parseComment(moderatorComment, apiAccount.id)
}
override fun execute(): Response {
diff --git a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/tags/ETagsChange.kt b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/tags/ETagsChange.kt
index 02ca61e8..51e93131 100644
--- a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/tags/ETagsChange.kt
+++ b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/tags/ETagsChange.kt
@@ -27,7 +27,7 @@ class ETagsChange : RTagsChange(0, null, "", null, false) {
override fun check() {
if (removeImage && image != null) throw ApiException(E_BAD_PARAMS)
- ControllerModeration.parseComment(comment, apiAccount.id)
+ comment = ControllerModeration.parseComment(comment, apiAccount.id)
publication = ControllerPublications.getPublication(publicationId, apiAccount.id) as PublicationTag?
diff --git a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/tags/ETagsCreate.kt b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/tags/ETagsCreate.kt
index 8a7325a2..69ec0cf1 100644
--- a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/tags/ETagsCreate.kt
+++ b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/tags/ETagsCreate.kt
@@ -20,7 +20,7 @@ class ETagsCreate : RTagsCreate("", "", 0, 0, 0, null) {
override fun check() {
- ControllerModeration.parseComment(comment, apiAccount.id)
+ comment = ControllerModeration.parseComment(comment, apiAccount.id)
if (parentId != 0L) {
publicationParent = ControllerPublications.getPublication(parentId, apiAccount.id) as PublicationTag?
diff --git a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/tags/ETagsMove.kt b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/tags/ETagsMove.kt
index 72f3d665..e58aa838 100644
--- a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/tags/ETagsMove.kt
+++ b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/tags/ETagsMove.kt
@@ -24,7 +24,7 @@ class ETagsMove : RTagsMove(0, 0, "") {
@Throws(ApiException::class)
override fun check() {
- ControllerModeration.parseComment(comment, apiAccount.id)
+ comment = ControllerModeration.parseComment(comment, apiAccount.id)
publication = ControllerPublications.getPublication(publicationId, apiAccount.id) as PublicationTag?
publicationOldParent = ControllerPublications.getPublication(publication!!.parentPublicationId, apiAccount.id) as PublicationTag?
publicationNewParent = ControllerPublications.getPublication(newCategoryId, apiAccount.id) as PublicationTag?
diff --git a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/tags/ETagsMoveCategory.kt b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/tags/ETagsMoveCategory.kt
index 82b9439a..e8882566 100644
--- a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/tags/ETagsMoveCategory.kt
+++ b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/tags/ETagsMoveCategory.kt
@@ -20,7 +20,7 @@ class ETagsMoveCategory : RTagsMoveCategory(0, 0, "") {
@Throws(ApiException::class)
override fun check() {
- ControllerModeration.parseComment(comment, apiAccount.id)
+ comment = ControllerModeration.parseComment(comment, apiAccount.id)
publication = ControllerPublications.getPublication(publicationId, apiAccount.id) as PublicationTag?
publicationOther = ControllerPublications.getPublication(beforeCategoryId, apiAccount.id) as PublicationTag?
if (publication == null) throw ApiException(API.ERROR_GONE)
diff --git a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/tags/ETagsMoveTag.kt b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/tags/ETagsMoveTag.kt
index b1bb317c..30a07399 100644
--- a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/tags/ETagsMoveTag.kt
+++ b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/tags/ETagsMoveTag.kt
@@ -20,7 +20,7 @@ class ETagsMoveTag : RTagsMoveTag(0, 0, "") {
@Throws(ApiException::class)
override fun check() {
- ControllerModeration.parseComment(comment, apiAccount.id)
+ comment = ControllerModeration.parseComment(comment, apiAccount.id)
publication = ControllerPublications.getPublication(publicationId, apiAccount.id) as PublicationTag?
publicationOther = ControllerPublications.getPublication(beforeTagId, apiAccount.id) as PublicationTag?
if (publication == null) throw ApiException(API.ERROR_GONE)
diff --git a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/tags/ETagsRemove.kt b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/tags/ETagsRemove.kt
index 4f4ebb2f..c43b755d 100644
--- a/CampfireServer/src/main/java/com/dzen/campfire/server/executors/tags/ETagsRemove.kt
+++ b/CampfireServer/src/main/java/com/dzen/campfire/server/executors/tags/ETagsRemove.kt
@@ -24,7 +24,7 @@ class ETagsRemove : RTagsRemove("", 0) {
@Throws(ApiException::class)
override fun check() {
- ControllerModeration.parseComment(comment, apiAccount.id)
+ comment = ControllerModeration.parseComment(comment, apiAccount.id)
publication = ControllerPublications.getPublication(publicationId, apiAccount.id) as PublicationTag?
if (publication == null) throw ApiException(API.ERROR_GONE)
diff --git a/DevSupJava/src/main/java/com/sup/dev/java/tools/ToolsDate.kt b/DevSupJava/src/main/java/com/sup/dev/java/tools/ToolsDate.kt
index a32c7c32..8f784c8e 100644
--- a/DevSupJava/src/main/java/com/sup/dev/java/tools/ToolsDate.kt
+++ b/DevSupJava/src/main/java/com/sup/dev/java/tools/ToolsDate.kt
@@ -1,223 +1,100 @@
package com.sup.dev.java.tools
import java.text.SimpleDateFormat
-import java.util.*
+import java.util.Calendar
+import java.util.Date
+import java.util.Locale
object ToolsDate {
+ private const val format_full = "EEE, dd.MM.yyyy HH:mm:ss"
+ private const val format_short1 = "d MMM y HH:mm"
+ private const val format_short2 = "d MMM HH:mm"
+ private const val format_short3 = "HH:mm"
- private val format1 = "dd MMM yyyy HH:mm"
- private val format2 = "dd MMM HH:mm"
- private val format3 = "HH:mm"
-
+ // 0 - Monday, 6 - Sunday
val currentDayOfWeek: Int
- get() {
- var i = GregorianCalendar.getInstance().get(Calendar.DAY_OF_WEEK) - 2
- if (i == -1) i = 6
- return i
+ get() = Calendar.getInstance().get(Calendar.DAY_OF_WEEK) - 1
+
+ fun dateToString(time: Long, compact: Boolean = true): String {
+ val date = Date(time)
+ if (!compact) {
+ val formatter = SimpleDateFormat(format_short1, Locale.getDefault())
+ return formatter.format(date)
}
+ val calendarNow = Calendar.getInstance()
+ val calendar = Calendar.getInstance()
+ calendar.setTime(date)
- val currentHourseOfDay: Int
- get() = GregorianCalendar.getInstance().get(Calendar.HOUR_OF_DAY)
- val currentMinutesOfHourse: Int
- get() = GregorianCalendar.getInstance().get(Calendar.MINUTE)
+ val formatter: SimpleDateFormat
+ if (calendarNow.get(Calendar.YEAR) != calendar.get(Calendar.YEAR)) {
+ formatter = SimpleDateFormat(format_short1, Locale.getDefault())
+ } else if (calendarNow.get(Calendar.DAY_OF_YEAR) != calendar.get(Calendar.DAY_OF_YEAR)) {
+ formatter = SimpleDateFormat(format_short2, Locale.getDefault())
+ } else {
+ formatter = SimpleDateFormat(format_short3, Locale.getDefault())
+ }
- val nowDay: Calendar
- get() = GregorianCalendar.getInstance()
+ return formatter.format(date)
+ }
+ fun dateToStringFull(time: Long): String {
+ val formatter = SimpleDateFormat(format_full, Locale.getDefault())
+ val formatted = formatter.format(Date(time))
+ val capitalized = formatted.substring(0, 1).uppercase() + formatted.substring(1)
+ return capitalized
+ }
+
+ fun getStartOfDay(date: Long? = null): Long {
+ val calendar = Calendar.getInstance()
+ if (date != null) {
+ calendar.timeInMillis = date
+ }
- fun getStartOfDay(): Long {
- val calendar = GregorianCalendar.getInstance()
- calendar.set(Calendar.SECOND, 0)
- calendar.set(Calendar.MINUTE, 0)
calendar.set(Calendar.HOUR_OF_DAY, 0)
+ calendar.set(Calendar.MINUTE, 0)
+ calendar.set(Calendar.SECOND, 0)
calendar.set(Calendar.MILLISECOND, 0)
return calendar.timeInMillis
}
fun getStartOfMonth(): Long {
- val calendar = GregorianCalendar.getInstance()
+ val calendar = Calendar.getInstance()
+ calendar.set(Calendar.DAY_OF_MONTH, 0)
calendar.set(Calendar.HOUR_OF_DAY, 0)
- calendar.clear(Calendar.MINUTE)
- calendar.clear(Calendar.SECOND)
- calendar.clear(Calendar.MILLISECOND)
- calendar.set(Calendar.DAY_OF_MONTH, 1)
- return calendar.timeInMillis
- }
-
- fun getStartOfNextMonth(): Long {
- val calendar = GregorianCalendar.getInstance()
- calendar.set(Calendar.HOUR_OF_DAY, 0)
- calendar.clear(Calendar.MINUTE)
- calendar.clear(Calendar.SECOND)
- calendar.clear(Calendar.MILLISECOND)
- calendar.set(Calendar.DAY_OF_MONTH, 1)
- calendar.add(Calendar.MONTH, 1)
- return calendar.timeInMillis
- }
-
- fun getLocalTime(date: Long) = date + getTimeZone()
-
- fun getTimeZone() = Calendar.getInstance().get(Calendar.ZONE_OFFSET).toLong()
-
- fun getTimeZoneHours() = (getTimeZone() / 1000 / 60 / 60).toInt()
-
- fun getTimeZoneName(): String {
- val cal = Calendar.getInstance()
- val milliDiff = cal.get(Calendar.ZONE_OFFSET).toLong()
- val ids = TimeZone.getAvailableIDs()
- var name = ""
- for (id in ids) {
- val tz = TimeZone.getTimeZone(id)
- if (tz.rawOffset.toLong() == milliDiff) {
- name = id
- break
- }
- }
- return name
- }
-
- fun getStartOfDay(date: Long) = getStartOfDay_GlobalTimeZone(date) - getTimeZone()
-
- fun getStartOfDay_GlobalTimeZone(date: Long):Long{
- val calendar = GregorianCalendar.getInstance()
- calendar.timeInMillis = date
- calendar.set(Calendar.SECOND, 0)
calendar.set(Calendar.MINUTE, 0)
- calendar.set(Calendar.HOUR_OF_DAY, 0)
+ calendar.set(Calendar.SECOND, 0)
calendar.set(Calendar.MILLISECOND, 0)
return calendar.timeInMillis
}
- fun format_yyyy_MM_dd(date: Long): String {
- return SimpleDateFormat("yyyy-MM-dd", Locale.getDefault()).format(Date(date))
- }
-
- fun format_kk_mm_ss(date: Long): String {
- return SimpleDateFormat("kk:mm:ss", Locale.getDefault()).format(Date(date))
- }
-
- fun format_hh_mm_ss(date: Long): String {
- return format_hh_mm_ss(Date(date))
- }
-
- fun format_hh_mm_ss(date: Date): String {
- return SimpleDateFormat("hh:mm:ss", Locale.getDefault()).format(date)
- }
-
- fun format_HH_mm_ss(date: Date): String {
- return SimpleDateFormat("HH:mm:ss", Locale.getDefault()).format(date)
- }
-
- fun format_dd_MM_yyyy(date: Date): String {
- return SimpleDateFormat("dd.MM.yyyy", Locale.getDefault()).format(date)
- }
-
- fun timeToString(h: Int, m: Int, s: Int): String {
- var text = ""
-
- text += if (h < 10) "0$h" else h
- text += ":"
- text += if (m < 10) "0$m" else m
- text += ":"
- text += if (s < 10) "0$s" else s
-
-
- return text
- }
-
- fun timeToString(h: Int, m: Int): String {
- var s = ""
-
- s += if (h < 10) "0$h" else h
- s += ":"
- s += if (m < 10) "0$m" else m
-
- return s
- }
-
- fun dayTimeToString_Ms(ms: Int) = dayTimeToString_Ms(ms.toLong())
- fun dayTimeToString_Ms(ms: Long) = dayTimeToString_Sec(ms / 1000)
- fun dayTimeToString_Ms_HH_MM_SS(ms: Long) = dayTimeToString_Sec_HH_MM_SS(ms / 1000)
-
- fun dayTimeToString_Sec(sec: Int) = dayTimeToString_Sec(sec.toLong())
- fun dayTimeToString_Sec(sec: Long) = dayTimeToString_Min(sec / 60)
- fun dayTimeToString_Sec_HH_MM_SS(sec: Long) = timeToString(sec.toInt() / 60 / 60, (sec.toInt()%(60*60))/60, sec.toInt() % 60)
-
- fun dayTimeToString_Min(dayTime: Int) = dayTimeToString_Min(dayTime.toLong())
- fun dayTimeToString_Min(dayTime: Long) = timeToString(dayTime.toInt() / 60, dayTime.toInt() % 60)
-
- fun dateToString(time: Long): String {
- val nowDate = GregorianCalendar.getInstance()
- val date = GregorianCalendar.getInstance()
-
- nowDate.timeInMillis = System.currentTimeMillis()
- date.timeInMillis = time
- val formatter: SimpleDateFormat
- if (nowDate.get(Calendar.YEAR) != date.get(Calendar.YEAR)) {
- formatter = SimpleDateFormat(format1)
- } else {
- if (nowDate.get(Calendar.MONTH) != date.get(Calendar.MONTH) || nowDate.get(Calendar.DAY_OF_MONTH) != date.get(Calendar.DAY_OF_MONTH)) {
- formatter = SimpleDateFormat(format2)
- } else {
- formatter = SimpleDateFormat(format3)
- }
- }
- return formatter.format(Date(time))
- }
-
- fun dateToStringFull(time: Long): String {
- return SimpleDateFormat(format1).format(Date(time))
- }
-
- fun getCurrentMonthOfYear() = GregorianCalendar.getInstance().get(Calendar.MONTH) + 1
-
- fun getCurrentMonthOfYear(date: Long): Int {
- val instance = GregorianCalendar.getInstance()
- instance.timeInMillis = date
- return instance.get(Calendar.MONTH)
+ fun getCurrentMillisecondsOfDay(): Long {
+ val calendar = Calendar.getInstance()
+ return (
+ calendar.get(Calendar.HOUR_OF_DAY) * 60 * 60 * 1000 +
+ calendar.get(Calendar.MINUTE) * 60 * 1000 +
+ calendar.get(Calendar.SECOND) * 60 +
+ calendar.get(Calendar.MILLISECOND)
+ ).toLong()
}
- fun getCurrentDayOfMonth() = GregorianCalendar.getInstance().get(Calendar.DAY_OF_MONTH)
-
- fun getCurrentDayOfMonth(date: Long): Int {
- val instance = GregorianCalendar.getInstance()
- instance.timeInMillis = date
- return instance.get(Calendar.DAY_OF_MONTH)
+ fun getCurrentMinutesOfDay(): Long {
+ val calendar = Calendar.getInstance()
+ return calendar.get(Calendar.HOUR_OF_DAY) * 60L + calendar.get(Calendar.MINUTE)
}
- fun getCurrentHourOfDay() = getCurrentMinutesOfDay() / 60
+ fun getCurrentDayOfMonth() = Calendar.getInstance().get(Calendar.DAY_OF_MONTH).toLong()
- fun getCurrentMinutesOfDay() = getCurrentSecondsOfDay() / 60
+ fun timeToString(hours: Int, minutes: Int) = hours.toString() +
+ ":" + (if (minutes < 10) "0" else "") + minutes.toString()
- fun getCurrentMinutesOfHour() = getCurrentMinutesOfDay() % 60
+ fun timeToString(time: Long): String {
+ val hours = time / (1000 * 60 * 60)
+ val minutes = (time / (1000 * 60)) % 60
+ val seconds = (time / 1000) % 60
- fun getCurrentSecondsOfDay() = getCurrentMillisecondsOfDay() / 1000
-
- fun getCurrentSecondsOfHour() = getCurrentSecondsOfDay() % (60 * 60)
-
- fun getCurrentSecondsOfMinute() = getCurrentSecondsOfDay() % 60
-
- fun getCurrentMillisecondsOfDay(): Long {
- val calendar = GregorianCalendar.getInstance()
- val minutes = calendar.get(Calendar.MINUTE)
- val hours = calendar.get(Calendar.HOUR_OF_DAY)
- val seconds = calendar.get(Calendar.SECOND)
- val milliseconds = calendar.get(Calendar.MILLISECOND)
- return ((hours * 60L + minutes) * 60 + seconds) * 1000 + milliseconds
+ return hours.toString() +
+ ":" + (if (minutes < 10) "0" else "") + minutes.toString() +
+ ":" + (if (seconds < 10) "0" else "") + seconds.toString()
}
-
- fun getLocalDateTime(serverDateTime: String, serverTimezoneId: String = "UTC", format: String = "yyyy-MM-dd HH:mm:ss"): String {
- return try {
- val dateFormat = SimpleDateFormat(format)
- dateFormat.timeZone = TimeZone.getTimeZone(serverTimezoneId) // timezone of server
- val date = dateFormat.parse(serverDateTime)
- dateFormat.timeZone = Calendar.getInstance().timeZone // timezone of device
- dateFormat.format(date)
- } catch (e: Exception) {
- serverDateTime
- }
- }
-
-
}
diff --git a/README.md b/README.md
index 1b75149b..f3aadffa 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,134 @@
-# Bonfire
+# [Bonfire](https://play.google.com/store/apps/details?id=sh.sit.bonfire)
-Android app
+[](https://github.com/timas130/bonfire/actions)
+[](https://discord.gg/QGcJrHknAp)
+[](https://tlp.bonfire.moe/projects/bonfire/-/en)
+[](https://tlp.bonfire.moe/projects/bonfire/-/ru)
+[](https://tlp.bonfire.moe/projects/bonfire/-/uk)
+
+A social network for Android with many communities and a unique moderation system: its users can
+earn moderator privileges by completing achievements and gaining karma (likes). It has an extensive
+post editor that supports Markdown, images, GIFs, polls, etc. There are chats for each community,
+private chats between users (DMs) and private conferences.
+
+## Features
+
+* Anyone can create and curate their own community: there are wiki pages, quests, relay races and
+ rubrics to help other communities engage with it.
+* Users have full control over media: anyone can become a moderator and everyone can vote for
+ adding a new rule or feature to any community.
+* Community participation rewards: from special badges to moderation abilities depending on your
+ level and karma. You can earn exclusive privileges by creating engaging spaces!
+
+## Building the app
+
+You can build and run the app using Android Studio. [Java 17](https://jdk.java.net/archive) is
+recommended.
+
+## Testing locally (building the server)
+
+1. Ensure you have the following:
+ * [Android Studio](https://developer.android.com/studio) or
+ [Java 17](https://jdk.java.net/archive) with
+ [Command line tools](https://developer.android.com/studio#command-line-tools-only) to build
+ the app
+ * [Docker](https://docker.com/products/docker-desktop)
+ * [PostgreSQL database](https://postgresql.org/downloads) (the database should be named
+ "postgres")
+ * [MinIO server and client](https://min.io/open-source/download)
+
+2. Create a Firebase project:
+ 1. Open https://console.firebase.google.com
+ 2. Create a new project
+ 3. Click on `Add app` and select Android
+ 4. Enter package name (e.g. "sh.sit.devfire")
+ 5. Optionally enter app nickname and click on `Register app`
+ 6. Go back to the console
+ 7. Click on blue `Add app` and select Android
+ 8. Enter the same package name and type ".debug" at the end (e.g. "sh.sit.devfire.debug")
+ 9. Optionally enter app nickname and click on `Register app`
+ 10. You can now close the console
+
+3. Download `google-services.json` (Project settings -> General) and Admin SDK JSON (Project
+ settings -> Service accounts -> Generate new private key) from
+ [Firebase Console](https://console.firebase.google.com)
+
+4. Download and unpack this archive into another directory:
+ https://drive.google.com/file/d/1V2cVKJ8JpRt7h_l64umXf75GxDjEkNgX
+
+5. Open `local.properties`, `config.toml` and `secrets/Secrets.json`:
+ 1. Replace "\" with the IP address of your computer in your local network
+ (run `ip addr` or `ifconfig`) in `local.properties` and `Secrets.json`
+ 2. Set database creds in `Secrets.json` (lines 9-16) and `config.toml` (line 1)
+ 3. Copy data from Admin SDK JSON to `Secrets.json` (lines 45-55) and `config.toml` (lines 49-59)
+ 4. Set S3 address and keys in `Secrets.json` (lines 58-60)
+ 5. Set the package ID you've previously entered (without ".debug") and optionally the
+ app's name in `local.properties` (lines 7-8)
+
+6. Clone this repo and copy `local.properties`, `config.toml` and `secrets/Secrets.json` to its
+ root
+
+7. Replace `Campfire/google-services.json` with your `google-services.json`
+
+8. Import the database dump and upload static resources to MinIO (change S3 address and keys to
+ yours in `alias set local`):
+
+ On Linux:
+ ```
+ sudo -u postgres psql \
+ -c "\i dump.sql" \
+ -c "alter database postgres set search_path = campfire_db,campfire_db_media,public"
+
+ mcli alias set local http://localhost:9000 admin secretsecret
+ mcli mb -p local/bonfire
+ mcli anonymous set public local/bonfire
+ ls -1 static | xargs -I {} mcli put static/{} local/bonfire/static/{}
+ ```
+
+ On Windows (PowerShell):
+ ```
+ psql.exe `
+ -c "\i dump.sql" `
+ -c "alter database postgres set search_path = campfire_db,campfire_db_media,public"
+
+ mc.exe alias set local http://localhost:9000 admin secretsecret
+ mc.exe mb -p local/bonfire
+ mc.exe anonymous set public local/bonfire
+ gci -path static -file | foreach {
+ mc.exe put $_.fullname local/bonfire/static/$_.name
+ }
+ ```
+
+9. Build and install the app
+
+10. Build and run the server:
+
+ On Linux:
+ ```
+ docker build -t bonfire .
+ docker run --network=host -v./secrets:/app/secrets -v./config.toml:/app/config.toml bonfire:latest
+ ```
+
+ On Windows:
+ ```
+ docker.exe build -t bonfire .
+ docker.exe run --network=host -v./secrets:/app/secrets -v./config.toml:/app/config.toml bonfire:latest
+ ```
+
+The server must not be exposed to public! If everything went smoothly, you can now open your custom
+Bonfire and log in as "default@user.com" with the password "00000000" (8 zeros). If you want to add
+another account, run this to verify it:
+
+On Linux:
+```
+sudo -u postgres psql -c "update users set email_verified = now(), email_verification_sent = null where email_verified is null"
+```
+
+On Windows:
+```
+psql.exe -c "update users set email_verified = now(), email_verification_sent = null where email_verified is null"
+```
+
+## License
+
+This project contains components licensed differently. See [LICENSE](LICENSE) for full details.
diff --git a/gradle.properties b/gradle.properties
index b5ff0fe3..82439600 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -19,5 +19,15 @@ android.defaults.buildfeatures.buildconfig=true
android.nonTransitiveRClass=false
android.nonFinalResIds=false
+# The properties below can be overriden in local.properties
+# For configuring the server edit secrets/Secrets.json
POSTHOG_API_KEY=phc_DLL3ZwtgG3P69VbpCS8U4rhy6ZIcOlHqUc2hUFp7qoQ
-POSTHOG_HOST=https://chronicle.bonfire.moe
+
+HOST=bonfire.moe
+SERVER_POSTHOG=https://chronicle.bonfire.moe
+SERVER_ROOT=https://cf2.bonfire.moe
+SERVER_MELIOR=https://api.bonfire.moe
+SERVER_S3=https://data.bonfire.moe/bonfire
+
+APP_ID=sh.sit.bonfire
+APP_NAME=Bonfire
diff --git a/secrets_sample/Secrets.json b/secrets_sample/Secrets.json
index 2d73f499..2d82cd5d 100644
--- a/secrets_sample/Secrets.json
+++ b/secrets_sample/Secrets.json
@@ -2,35 +2,44 @@
"bots_tokens": [
"xxxxxx"
],
- "config":{
- "build_type":"debug",
- "patch_prefix":"CampfireServer/build/distributions/CampfireServer/",
- "patch_prefix_b":"CampfireServerMedia/build/distributions/CampfireServerMedia/lib/",
- "database_login":"",
- "database_password":"",
- "database_name":"",
- "database_address":"",
- "database_media_login":"",
- "database_media_password":"",
- "database_media_name":"",
- "database_media_address":"",
+ "config": {
+ "build_type": "debug",
+ "patch_prefix": "CampfireServer/build/distributions/CampfireServer/",
+ "patch_prefix_b": "CampfireServerMedia/build/distributions/CampfireServerMedia/lib/",
+ "database_login": "",
+ "database_password": "",
+ "database_name": "",
+ "database_address": "",
+ "database_media_login": "",
+ "database_media_password": "",
+ "database_media_name": "",
+ "database_media_address": "",
"rust_address": "http://localhost:51681"
},
- "keys":{
- "google_notification_key":"",
+ "api": {
+ "host": "bonfire.moe",
+ "server_root": "https://cf2.bonfire.moe",
+ "server_melior": "https://api.bonfire.moe",
+ "server_s3": "https://data.bonfire.moe/bonfire"
+ },
+ "keys": {
+ "google_notification_key": "",
"google_auth": [
- {"client_id": "", "secret": ""}
+ {
+ "client_id": "",
+ "secret": ""
+ }
],
- "jks_password":"",
+ "jks_password": "",
"hcaptcha_site_key": "10000000-ffff-ffff-ffff-000000000001",
"hcaptcha_secret": "0x0000000000000000000000000000000000000000",
"productlane_key": "",
"productlane_workspace": "",
"internal_key": "internal_key_dont_use"
},
- "donates":{
- "field":"",
- "value":""
+ "donates": {
+ "field": "",
+ "value": ""
},
"firebase": {
"type": "",