Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/bjzhou/Coolapk-kotlin

酷安开源版.....
https://github.com/bjzhou/Coolapk-kotlin

android api apk coolapk coolmarket kotlin market

Last synced: 3 months ago
JSON representation

酷安开源版.....

Awesome Lists containing this project

README

        

Coolapk
=======

酷安开源版

### 酷市场开源版 Demo

[点此下载 Demo apk](https://github.com/bjzhou/Coolapk/raw/master/release/app-release.apk)

![screenshot](https://github.com/bjzhou/Coolapk/raw/master/screenshot/device-2017-02-13-114402.png)

### 酷市场 V7 版 API 相关

所有接口使用统一的前缀: https://api.coolapk.com/v6/

所有接口使用统一的 HTTP 头:

```
User-Agent: Dalvik/2.1.0 (Linux; U; Android 5.1.1; Nexus 4 Build/LMY48T) (#Build; google; Nexus 4; LMY48T; 5.1.1) +CoolMarket/7.3
X-Requested-With: XMLHttpRequest
X-Sdk-Int: 22
X-Sdk-Locale: zh-CN
X-App-Id: coolmarket
X-App-Token: 2a6e2adc2897c8d8133db17c2cd3b1045834ce58-d7d5-38eb-95d5-563167a1983d0x588f16cd
X-App-Version: 7.3
X-App-Code: 1701135
X-Api-Version: 7
```
具体参数获取方式可参考ApiManager.java,其中X-App-Token的生成是c++写的,直接引用了酷市场的 so 文件,不清楚具体算法,组合方式应该是`校验和+uuid+时间戳`

本项目介绍了 `main/init` 和 `picture/list` 两个接口的具体使用方法,分别是获取启动图和所有酷图的,其他接口可参考下面的 retrofit 接口文件:

```java
public interface CoolMarketService {
@POST("feed/favorite")
Observable> m3639A(@Query("id") String str);

@POST("user/follow")
Observable> m3640B(@Query("uid") String str);

@POST("user/unfollow")
Observable> m3641C(@Query("uid") String str);

@POST("feed/cancelRecommend")
Observable> m3642D(@Query("id") String str);

@POST("feed/Recommend")
Observable> m3643E(@Query("id") String str);

@POST("discovery/loadDiscoveryInfo")
Observable> m3644F(@Query("query") String str);

@GET("topic/tagDetail")
Observable> m3645G(@Query("tag") String str);

@GET("feed/followTag")
Observable> m3646H(@Query("tag") String str);

@GET("feed/unFollowTag")
Observable> m3647I(@Query("tag") String str);

@GET("message/receive")
Observable> m3648J(@Query("id") String str);

@GET("message/read")
Observable> m3649K(@Query("ukey") String str);

@GET("cloudInstall/task")
Observable> m3650L(@Query("id") String str);

@GET("apk/qr")
Observable> m3651M(@Query("id") String str);

@GET("main/index")
Observable>> m3652a();

@GET("main/headline")
Observable>> m3653a(@Query("page") int i, @Query("firstItem") String str, @Query("lastItem") String str2);

@GET("album/list")
Observable>> m3654a(@Query("page") int i, @Query("firstItem") String str, @Query("lastItem") String str2, @Query("listType") String str3);

@POST("account/changeAvatar")
Observable> m3655a(@Body RequestBody requestBody);

@GET("main/checkHeadlineCount")
Observable> m3656a(@Query("firstItem") String str);

@GET("apk/detail")
Observable> m3657a(@Query("id") String str, @Query("installed") int i);

@POST("message/send")
@Multipart
Observable> m3658a(@Query("uid") String str, @Query("quick_reply") int i, @Part("message") String str2);

@GET("apk/index")
Observable>> m3659a(@Query("apkType") String str, @Query("page") int i, @Query("firstItem") String str2, @Query("lastItem") String str3);

@GET("feed/replyList")
Observable>> m3660a(@Query("id") String str, @Query("page") int i, @Query("firstItem") String str2, @Query("lastItem") String str3, @Query("discussMode") int i2, @Query("feedType") String str4);

@GET("topic/tagFeedList")
Observable>> m3661a(@Query("tag") String str, @Query("page") int i, @Query("firstItem") String str2, @Query("lastItem") String str3, @Query("listType") String str4);

@POST("album/addApk")
Observable> m3662a(@Query("id") String str, @Body RequestBody requestBody);

@POST("apk/checkUpdate")
@Multipart
Observable>> m3663a(@Part("pkgs") String str, @Query("coolmarket_beta") String str2);

@GET("apk/search")
Observable>> m3664a(@Query("q") String str, @Query("apkType") String str2, @Query("page") int i, @Query("firstItem") String str3, @Query("lastItem") String str4);

@POST("feed/uploadImage")
Observable> m3665a(@Query("fieldName") String str, @Query("uploadDir") String str2, @Body RequestBody requestBody);

@GET("album/index")
Observable>> m3666a(@Query("page") String str, @Query("firstItem") String str2, @Query("lastItem") String str3);

@GET("apk/index?listType=cat")
Observable>> m3667a(@Query("catId") String str, @Query("apkType") String str2, @Query("rankType") String str3, @Query("page") int i, @Query("firstItem") String str4, @Query("lastItem") String str5);

@GET("apk/recommendList")
Observable>> m3668a(@Query("apkType") String str, @Query("title") String str2, @Query("subTitle") String str3, @Query("action") String str4, @Query("page") int i, @Query("firstItem") String str5, @Query("lastItem") String str6);

@GET("apk/downloadStat")
Observable> m3669a(@Query("pn") String str, @Query("aid") String str2, @Query("extra") String str3, @Query("ni") String str4, @Query("uninstall") String str5);

@FormUrlEncoded
@POST("album/addApk")
Observable> m3670a(@Query("id") String str, @Field("packageName") String str2, @Field("title") String str3, @Field("url") String str4, @Field("note") String str5, @Field("displayOrder") int i, @Field("logo") String str6);

@GET("main/init")
Observable>> init();

@GET("main/updateList")
Observable>> m3672b(@Query("page") int i, @Query("firstItem") String str, @Query("lastItem") String str2);

@POST("feed/newFeed")
Observable> m3673b(@Body RequestBody requestBody);

@GET("apk/realRankList")
Observable>> m3674b(@Query("apkType") String str);

@GET("apk/rating")
Observable>> m3675b(@Query("id") String str, @Query("value") int i);

@GET("apk/search?searchType=developer")
Observable>> m3676b(@Query("developer") String str, @Query("page") int i, @Query("firstItem") String str2, @Query("lastItem") String str3);

@POST("apk/comment")
Observable> m3677b(@Query("id") String str, @Body RequestBody requestBody);

@FormUrlEncoded
@POST("apk/unFavorite")
Observable> m3678b(@Field("id") String str, @Field("targetType") String str2);

@GET("picture/list")
Observable>> m3679b(@Query("tag") @NonNull String str, @Query("type") @NonNull String str2, @Query("page") int i, @Query("firstItem") String str3, @Query("lastItem") String str4);

@POST("feed/reply")
Observable> m3680b(@Query("id") String str, @Query("type") String str2, @Body RequestBody requestBody);

@FormUrlEncoded
@POST("album/edit")
Observable> m3681b(@Query("id") String str, @Field("title") String str2, @Field("intro") String str3);

@GET("apk/search")
Observable>> m3682b(@Query("q") String str, @Query("apkType") String str2, @Query("rankType") String str3, @Query("page") int i, @Query("firstItem") String str4, @Query("lastItem") String str5);

@GET("device/ip")
Observable> m3683c();

@GET("apk/newestList")
Observable>> m3684c(@Query("page") int i, @Query("firstItem") String str, @Query("lastItem") String str2);

@POST("picture/newPicture")
Observable> m3685c(@Body RequestBody requestBody);

@GET("apk/categoryList")
Observable>> m3686c(@Query("apkType") String str);

@GET("user/albumlist")
Observable>> m3687c(@Query("uid") String str, @Query("pageSize") int i);

@GET("apk/discovererList")
Observable>> m3688c(@Query("id") String str, @Query("page") int i, @Query("firstItem") String str2, @Query("lastItem") String str3);

@GET("user/delGift")
Observable> m3689c(@Query("docId") String str, @Query("gift") String str2);

@GET("apk/commentList")
Observable>> m3690c(@Query("id") String str, @Query("listType") String str2, @Query("page") int i, @Query("firstItem") String str3, @Query("lastItem") String str4);

@POST("user/block")
Observable> m3691c(@Query("uid") String str, @Query("action") String str2, @Query("clearTypes") String str3);

@GET("apk/search?searchType=tag")
Observable>> m3692c(@Query("tag") String str, @Query("apkType") String str2, @Query("rankType") String str3, @Query("page") int i, @Query("firstItem") String str4, @Query("lastItem") String str5);

@GET("notification/checkCount")
Observable> m3693d();

@GET("discovery/index")
Observable>> m3694d(@Query("page") int i, @Query("firstItem") String str, @Query("lastItem") String str2);

@POST("discovery/newDiscovery")
Observable> m3695d(@Body RequestBody requestBody);

@GET("apk/offline")
Observable> m3696d(@Query("id") String str);

@FormUrlEncoded
@POST("user/deleteAvatar")
Observable> m3697d(@Query("uid") String str, @Field("lock") int i);

@GET("apk/ratingUserList")
Observable>> m3698d(@Query("id") String str, @Query("page") int i, @Query("firstItem") String str2, @Query("lastItem") String str3);

@POST("album/create")
@Multipart
Observable> m3699d(@Part("title") String str, @Part("intro") String str2);

@GET("{feedType}/search")
Observable>> m3700d(@Path("feedType") String str, @Query("q") String str2, @Query("page") int i, @Query("firstItem") String str3, @Query("lastItem") String str4);

@GET("apk/giftList")
Observable>> m3701e(@Query("page") int i, @Query("firstItem") String str, @Query("lastItem") String str2);

@GET("picture/addToSplash")
Observable> m3702e(@Query("id") String str);

@POST("feed/like")
Observable> m3703e(@Query("id") String str, @Query("detail") int i);

@GET("picture/userPictures")
Observable>> m3704e(@Query("uid") @NonNull String str, @Query("page") int i, @Query("firstItem") String str2, @Query("lastItem") String str3);

@POST("album/delApk")
@Multipart
Observable> m3705e(@Query("id") String str, @Part("packageName") String str2);

@GET("user/blackList")
Observable>> m3706f(@Query("page") int i, @Query("firstItem") String str, @Query("lastItem") String str2);

@GET("apk/downloadVersionList")
Observable>> m3707f(@Query("id") String str);

@POST("feed/unlike")
Observable> m3708f(@Query("id") String str, @Query("detail") int i);

@GET("apk/developerAppList")
Observable>> m3709f(@Query("uid") String str, @Query("page") int i, @Query("firstItem") String str2, @Query("lastItem") String str3);

@FormUrlEncoded
@POST("album/editApkDisplayOrder")
Observable> m3710f(@Query("id") String str, @Field("displayOrder") String str2);

@GET("user/ignoreList")
Observable>> m3711g(@Query("page") int i, @Query("firstItem") String str, @Query("lastItem") String str2);

@GET("apk/follow")
Observable>> m3712g(@Query("id") String str);

@POST("feed/deleteFeed")
Observable> m3713g(@Query("id") String str, @Query("notNotify") int i);

@GET("apk/giftList")
Observable>> m3714g(@Query("apkId") String str, @Query("page") int i, @Query("firstItem") String str2, @Query("lastItem") String str3);

@POST("album/unFavorite")
Observable> m3715g(@Query("id") String str, @Query("targetType") String str2);

@GET("user/limitList")
Observable>> m3716h(@Query("page") int i, @Query("firstItem") String str, @Query("lastItem") String str2);

@GET("apk/url")
Observable> m3717h(@Query("id") String str);

@POST("feed/deleteReply")
Observable> m3718h(@Query("id") String str, @Query("notNotify") int i);

@GET("user/giftList")
Observable>> m3719h(@Query("uid") String str, @Query("page") int i, @Query("firstItem") String str2, @Query("lastItem") String str3);

@GET("feed/detail")
Observable> m3720h(@Query("id") String str, @Query("rid") String str2);

@GET("topic/recentFeedList")
Observable>> m3721i(@Query("page") int i, @Query("firstItem") String str, @Query("lastItem") String str2);

@GET("apk/unfollow")
Observable>> m3722i(@Query("id") String str);

@GET("album/search")
Observable>> m3723i(@Query("q") String str, @Query("page") int i, @Query("firstItem") String str2, @Query("lastItem") String str3);

@POST("feed/unFavorite")
Observable> m3724i(@Query("id") String str, @Query("targetType") String str2);

@GET("topic/hotFeedList")
Observable>> m3725j(@Query("page") int i, @Query("firstItem") String str, @Query("lastItem") String str2);

@FormUrlEncoded
@POST("apk/favorite")
Observable> m3726j(@Field("id") String str);

@GET("user/albumlist")
Observable>> m3727j(@Query("uid") String str, @Query("page") int i, @Query("firstItem") String str2, @Query("lastItem") String str3);

@POST("message/send")
@Multipart
Observable> m3728j(@Query("uid") String str, @Part("message") String str2);

@GET("topic/tagList")
Observable>> m3729k(@Query("page") int i, @Query("firstItem") String str, @Query("lastItem") String str2);

@GET("apk/unrating")
Observable>> m3730k(@Query("id") String str);

@GET("album/replyList")
Observable>> m3731k(@Query("id") String str, @Query("page") int i, @Query("firstItem") String str2, @Query("lastItem") String str3);

@POST("account/changeProfile")
@Multipart
Observable> m3732k(@Part("key") String str, @Part("value") String str2);

@GET("user/replyToMeList")
Observable>> m3733l(@Query("page") int i, @Query("firstItem") String str, @Query("lastItem") String str2);

@GET("apk/getGift")
Observable> m3734l(@Query("docId") String str);

@GET("user/apkRatingList")
Observable>> m3735l(@Query("uid") String str, @Query("page") int i, @Query("firstItem") String str2, @Query("lastItem") String str3);

@GET("feed/editorChoiceList")
Observable>> m3736m(@Query("page") int i, @Query("firstItem") String str, @Query("lastItem") String str2);

@GET("album/detail")
Observable> m3737m(@Query("id") String str);

@GET("topic/tagFeedList")
Observable>> m3738m(@Query("tag") String str, @Query("page") int i, @Query("firstItem") String str2, @Query("lastItem") String str3);

@GET("user/followTagList")
Observable>> m3739n(@Query("page") int i, @Query("firstItem") String str, @Query("lastItem") String str2);

@POST("album/recommend")
Observable> m3740n(@Query("id") String str);

@GET("user/feedList")
Observable>> m3741n(@Query("uid") String str, @Query("page") int i, @Query("firstItem") String str2, @Query("lastItem") String str3);

@GET("notification/list")
Observable>> m3742o(@Query("page") int i, @Query("firstItem") String str, @Query("lastItem") String str2);

@FormUrlEncoded
@POST("album/favorite")
Observable> m3743o(@Field("id") String str);

@GET("topic/feedList")
Observable>> m3744o(@Query("type") String str, @Query("page") int i, @Query("firstItem") String str2, @Query("lastItem") String str3);

@GET("notification/atCommentMeList")
Observable>> m3745p(@Query("page") int i, @Query("firstItem") String str, @Query("lastItem") String str2);

@GET("account/accessToken")
Observable> m3746p(@Query("code") String str);

@GET("user/likeList")
Observable>> m3747p(@Query("uid") String str, @Query("page") int i, @Query("firstItem") String str2, @Query("lastItem") String str3);

@GET("notification/atMeList")
Observable>> m3748q(@Query("page") int i, @Query("firstItem") String str, @Query("lastItem") String str2);

@GET("user/profile")
Observable> m3749q(@Query("uid") String str);

@GET("user/apkCommentList")
Observable>> m3750q(@Query("uid") String str, @Query("page") int i, @Query("firstItem") String str2, @Query("lastItem") String str3);

@GET("notification/commentMeList")
Observable>> m3751r(@Query("page") int i, @Query("firstItem") String str, @Query("lastItem") String str2);

@POST("user/addToBlackList")
Observable> m3752r(@Query("uid") String str);

@GET("user/discoveryList")
Observable>> m3753r(@Query("uid") String str, @Query("page") int i, @Query("firstItem") String str2, @Query("lastItem") String str3);

@GET("notification/feedLikeList")
Observable>> m3754s(@Query("page") int i, @Query("firstItem") String str, @Query("lastItem") String str2);

@POST("user/removeFromBlackList")
Observable> m3755s(@Query("uid") String str);

@GET("user/apkFollowList")
Observable>> m3756s(@Query("uid") String str, @Query("page") int i, @Query("firstItem") String str2, @Query("lastItem") String str3);

@GET("message/list")
Observable>> m3757t(@Query("page") int i, @Query("firstItem") String str, @Query("lastItem") String str2);

@POST("user/addToIgnoreList")
Observable> m3758t(@Query("uid") String str);

@GET("user/replyList")
Observable>> m3759t(@Query("uid") String str, @Query("page") int i, @Query("firstItem") String str2, @Query("lastItem") String str3);

@GET("feed/newestList")
Observable>> m3760u(@Query("page") int i, @Query("firstItem") String str, @Query("lastItem") String str2);

@POST("user/removeFromIgnoreList")
Observable> m3761u(@Query("uid") String str);

@GET("user/followList")
Observable>> m3762u(@Query("uid") String str, @Query("page") int i, @Query("firstItem") String str2, @Query("lastItem") String str3);

@GET("feed/newestReplyList")
Observable>> m3763v(@Query("page") int i, @Query("firstItem") String str, @Query("lastItem") String str2);

@POST("user/addToLimitList")
Observable> m3764v(@Query("uid") String str);

@GET("user/fansList")
Observable>> m3765v(@Query("uid") String str, @Query("page") int i, @Query("firstItem") String str2, @Query("lastItem") String str3);

@POST("user/removeFromLimitList")
Observable> m3766w(@Query("uid") String str);

@GET("user/search")
Observable>> m3767w(@Query("q") String str, @Query("page") int i, @Query("firstItem") String str2, @Query("lastItem") String str3);

@GET("feed/replyDetail")
Observable> m3768x(@Query("id") String str);

@GET("message/chat")
Observable>> m3769x(@Query("ukey") String str, @Query("page") int i, @Query("firstItem") String str2, @Query("lastItem") String str3);

@GET("feed/addToHeadline")
Observable> m3770y(@Query("feedId") String str);

@GET("favorite/list")
Observable>> m3771y(@Query("type") String str, @Query("page") int i, @Query("firstItem") String str2, @Query("lastItem") String str3);

@GET("feed/removeFromHeadline")
Observable> m3772z(@Query("feedId") String str);
}
```
### TODO

* 全部使用新版 API
* 分类
* 排行
* UI