aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/main/java/net/lacolaco/smileessence/twitter/task/Timelines.kt
blob: 37f5fca610137a40eebd4c857956cb99f638fb79 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
package net.lacolaco.smileessence.twitter.task

import net.lacolaco.smileessence.data.Account
import net.lacolaco.smileessence.entity.Tweet

class Timelines {
    class HomeTimelineTask(private val account: Account) : TimelineTask<Tweet>() {
        override fun doInBackground(): List<Tweet> {
            return Tweet.fromTwitter(account.twitter.timelines().getHomeTimeline(paging), account.userId)
        }
    }

    class MentionsTimelineTask(private val account: Account) : TimelineTask<Tweet>() {
        override fun doInBackground(): List<Tweet> {
            return Tweet.fromTwitter(account.twitter.timelines().getMentionsTimeline(paging), account.userId)
        }
    }

    class UserTimelineTask(private val account: Account, private val userID: Long) : TimelineTask<Tweet>() {
        override fun doInBackground(): List<Tweet> {
            return Tweet.fromTwitter(account.twitter.timelines().getUserTimeline(userID, paging), account.userId)
        }
    }

    class UserListStatusesTask(private val account: Account, private val listFullName: String) : TimelineTask<Tweet>() {
        override fun doInBackground(): List<Tweet> {
            val strings = listFullName.split("/".toRegex()).dropLastWhile({ it.isEmpty() }).toTypedArray()
            return Tweet.fromTwitter(account.twitter.list().getUserListStatuses(strings[0], strings[1], paging), account.userId)
        }
    }
}