File tree Expand file tree Collapse file tree
main/kotlin/me/proxer/library Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ package me.proxer.library.api.messenger
2+
3+ import me.proxer.library.ProxerCall
4+ import me.proxer.library.api.Endpoint
5+ import me.proxer.library.entity.messenger.LinkCheckResponse
6+
7+ /* *
8+ * Endpoint for reporting a conference. The given text is sent to the moderators for investigation.
9+ *
10+ * @author Ruben Gees
11+ */
12+ class CheckLinkEndpoint internal constructor(
13+ private val internalApi : InternalApi ,
14+ private val link : String
15+ ) : Endpoint<LinkCheckResponse> {
16+
17+ override fun build (): ProxerCall <LinkCheckResponse > {
18+ return internalApi.checkLink(link)
19+ }
20+ }
Original file line number Diff line number Diff line change @@ -3,6 +3,7 @@ package me.proxer.library.api.messenger
33import me.proxer.library.ProxerCall
44import me.proxer.library.entity.messenger.Conference
55import me.proxer.library.entity.messenger.ConferenceInfo
6+ import me.proxer.library.entity.messenger.LinkCheckResponse
67import me.proxer.library.entity.messenger.Message
78import me.proxer.library.enums.ConferenceType
89import retrofit2.http.Field
@@ -81,4 +82,8 @@ internal interface InternalApi {
8182 @FormUrlEncoded
8283 @POST(" messenger/report" )
8384 fun report (@Field(" conference_id" ) id : String? , @Field(" text" ) text : String? ): ProxerCall <Unit >
85+
86+ @FormUrlEncoded
87+ @POST(" messenger/checkLink" )
88+ fun checkLink (@Field(" link" ) link : String? ): ProxerCall <LinkCheckResponse >
8489}
Original file line number Diff line number Diff line change @@ -3,6 +3,7 @@ package me.proxer.library.api.messenger
33import me.proxer.library.api.messenger.ConferenceModificationEndpoint.ConferenceModification
44import me.proxer.library.enums.MessageAction
55import me.proxer.library.util.ProxerUtils
6+ import okhttp3.HttpUrl
67import retrofit2.Retrofit
78
89/* *
@@ -116,6 +117,20 @@ class MessengerApi internal constructor(retrofit: Retrofit) {
116117 return ReportConferenceEndpoint (internalApi, id, text)
117118 }
118119
120+ /* *
121+ * Returns the respective endpoint.
122+ */
123+ fun checkLink (link : String ): CheckLinkEndpoint {
124+ return CheckLinkEndpoint (internalApi, link)
125+ }
126+
127+ /* *
128+ * Returns the respective endpoint.
129+ */
130+ fun checkLink (link : HttpUrl ): CheckLinkEndpoint {
131+ return CheckLinkEndpoint (internalApi, link.toString())
132+ }
133+
119134 private fun constructMessageFromAction (action : MessageAction , subject : String ): String {
120135 require(action != MessageAction .NONE ) { " Invalid action: $action " }
121136
Original file line number Diff line number Diff line change 11package me.proxer.library.entity.info
22
33import com.squareup.moshi.Json
4+ import com.squareup.moshi.JsonClass
45import me.proxer.library.enums.Category
56import me.proxer.library.enums.MediaLanguage
67
@@ -16,6 +17,7 @@ import me.proxer.library.enums.MediaLanguage
1617 *
1718 * @author Ruben Gees
1819 */
20+ @JsonClass(generateAdapter = true )
1921data class EpisodeInfo (
2022 @Json(name = " start" ) val firstEpisode : Int ,
2123 @Json(name = " end" ) val lastEpisode : Int ,
Original file line number Diff line number Diff line change 11package me.proxer.library.entity.messenger
22
33import com.squareup.moshi.Json
4+ import com.squareup.moshi.JsonClass
45import me.proxer.library.entity.ProxerDateItem
56import me.proxer.library.entity.ProxerIdItem
67import me.proxer.library.entity.ProxerImageItem
@@ -21,6 +22,7 @@ import java.util.Date
2122 *
2223 * @author Ruben Gees
2324 */
25+ @JsonClass(generateAdapter = true )
2426data class Conference (
2527 @Json(name = " id" ) override val id : String ,
2628 @Json(name = " topic" ) val topic : String ,
Original file line number Diff line number Diff line change 11package me.proxer.library.entity.messenger
22
33import com.squareup.moshi.Json
4+ import com.squareup.moshi.JsonClass
45import java.util.Date
56
67/* *
@@ -15,6 +16,7 @@ import java.util.Date
1516 *
1617 * @author Desnoo
1718 */
19+ @JsonClass(generateAdapter = true )
1820data class ConferenceInfo (
1921 @Json(name = " topic" ) val topic : String ,
2022 @Json(name = " count" ) val participantAmount : Int ,
Original file line number Diff line number Diff line change 1+ package me.proxer.library.entity.messenger
2+
3+ import com.squareup.moshi.Json
4+ import com.squareup.moshi.JsonClass
5+
6+ /* *
7+ * Entity containing the results of a link check.
8+ *
9+ * @param isSecure If the link is not on any blacklist.
10+ * @param link The link sent.
11+ */
12+ @JsonClass(generateAdapter = true )
13+ data class LinkCheckResponse (
14+ @Json(name = " secure" ) val isSecure : Boolean ,
15+ @Json(name = " link" ) val link : String
16+ )
Original file line number Diff line number Diff line change 11package me.proxer.library.entity.notifications
22
33import com.squareup.moshi.Json
4+ import com.squareup.moshi.JsonClass
45import me.proxer.library.entity.ProxerDateItem
56import me.proxer.library.entity.ProxerIdItem
67import me.proxer.library.enums.NotificationType
@@ -19,6 +20,7 @@ import java.util.Date
1920 *
2021 * @author Ruben Gees
2122 */
23+ @JsonClass(generateAdapter = true )
2224data class Notification (
2325 @Json(name = " id" ) override val id : String ,
2426 @Json(name = " type" ) val type : NotificationType ,
Original file line number Diff line number Diff line change 11package me.proxer.library.entity.notifications
22
3+ import com.squareup.moshi.JsonClass
4+
35/* *
46 * Entity holding counts of notification types.
57 *
@@ -10,6 +12,7 @@ package me.proxer.library.entity.notifications
1012 *
1113 * @author Ruben Gees
1214 */
15+ @JsonClass(generateAdapter = true )
1316data class NotificationInfo (
1417 val messageAmount : Int ,
1518 val friendRequestAmount : Int ,
Original file line number Diff line number Diff line change @@ -3,17 +3,15 @@ package me.proxer.library
33import okhttp3.mockwebserver.MockResponse
44import okhttp3.mockwebserver.MockWebServer
55import okhttp3.mockwebserver.RecordedRequest
6- import okio.buffer
7- import okio.source
86import java.lang.invoke.MethodHandles
97import java.text.SimpleDateFormat
108import java.util.Date
119import java.util.Locale
1210import java.util.concurrent.TimeUnit
1311
1412fun fromResource (file : String ): String = MethodHandles .lookup().lookupClass().classLoader
15- .let { requireNotNull(it.getResourceAsStream (file)) }
16- .let { it.source().buffer().readUtf8() }
13+ .let { requireNotNull(it.getResource (file)) }
14+ .readText( Charsets . UTF_8 )
1715
1816fun String.toProxerDate (): Date = SimpleDateFormat (" yyyy-MM-dd" , Locale .GERMANY ).parse(this )
1917fun String.toProxerDateTime (): Date = SimpleDateFormat (" yyyy-MM-dd hh:mm:ss" , Locale .GERMANY ).parse(this )
You can’t perform that action at this time.
0 commit comments