├── README.md ├── app.js ├── app.json ├── app.wxss ├── kawa.js ├── pages ├── chat │ ├── chat.js │ ├── chat.json │ ├── chat.wxml │ ├── chat.wxss │ ├── comps │ │ ├── chat-item.wxml │ │ └── chat-item.wxss │ └── controller.js ├── enroll │ ├── enroll.js │ ├── enroll.json │ ├── enroll.wxml │ ├── enroll.wxss │ ├── info │ │ ├── info.js │ │ ├── info.json │ │ ├── info.wxml │ │ └── info.wxss │ ├── join │ │ ├── join.js │ │ ├── join.json │ │ ├── join.wxml │ │ └── join.wxss │ └── user │ │ ├── user.js │ │ ├── user.json │ │ ├── user.wxml │ │ └── user.wxss ├── exp │ ├── controller.js │ ├── exp.js │ ├── exp.json │ ├── exp.wxml │ └── exp.wxss ├── form │ ├── comps │ │ ├── ckbox │ │ │ ├── checkbox.js │ │ │ ├── checkbox.json │ │ │ ├── checkbox.wxml │ │ │ └── checkbox.wxss │ │ ├── comp.wxss │ │ ├── input │ │ │ ├── input.js │ │ │ ├── input.json │ │ │ ├── input.wxml │ │ │ └── input.wxss │ │ └── radio │ │ │ ├── radio.js │ │ │ ├── radio.json │ │ │ ├── radio.wxml │ │ │ └── radio.wxss │ ├── form.js │ ├── form.json │ ├── form.wxml │ └── form.wxss ├── home │ ├── comps │ │ ├── bulletin │ │ │ ├── bulletin.js │ │ │ ├── bulletin.json │ │ │ ├── bulletin.wxml │ │ │ └── bulletin.wxss │ │ ├── chacard │ │ │ ├── channel.js │ │ │ ├── channel.json │ │ │ ├── channel.wxml │ │ │ └── channel.wxss │ │ ├── hotcard │ │ │ ├── hotcard.js │ │ │ ├── hotcard.json │ │ │ ├── hotcard.wxml │ │ │ └── hotcard.wxss │ │ ├── postlist │ │ │ ├── controller.js │ │ │ ├── postlist.js │ │ │ ├── postlist.json │ │ │ ├── postlist.wxml │ │ │ └── postlist.wxss │ │ ├── toplist │ │ │ ├── toplist.js │ │ │ ├── toplist.json │ │ │ ├── toplist.wxml │ │ │ └── toplist.wxss │ │ └── userlist │ │ │ ├── controller.js │ │ │ ├── userlist.js │ │ │ ├── userlist.json │ │ │ ├── userlist.wxml │ │ │ └── userlist.wxss │ ├── controller.js │ ├── home.js │ ├── home.json │ ├── home.wxml │ └── home.wxss ├── join │ ├── join.js │ ├── join.json │ ├── join.wxml │ └── join.wxss ├── login │ ├── login.js │ ├── login.json │ ├── login.wxml │ └── login.wxss ├── logs │ ├── logs.js │ ├── logs.json │ ├── logs.wxml │ └── logs.wxss ├── me │ ├── controller.js │ ├── edit.js │ ├── edit.json │ ├── edit.wxml │ ├── edit.wxss │ ├── me.js │ ├── me.json │ ├── me.wxml │ └── me.wxss ├── message │ ├── controller.js │ ├── list │ │ ├── comment.js │ │ ├── comment.json │ │ ├── comment.wxml │ │ ├── comment.wxss │ │ ├── comment_ctr.js │ │ ├── favor.js │ │ ├── favor.json │ │ ├── favor.wxml │ │ ├── favor.wxss │ │ ├── favor_ctr.js │ │ └── shared.wxss │ ├── message.js │ ├── message.json │ ├── message.wxml │ └── message.wxss ├── point │ ├── controller.js │ ├── history │ │ ├── history.js │ │ ├── history.json │ │ ├── history.wxml │ │ └── history.wxss │ ├── point.js │ ├── point.json │ ├── point.wxml │ └── point.wxss ├── poll │ ├── comps │ │ ├── detail.js │ │ ├── detail.json │ │ ├── detail.wxml │ │ └── detail.wxss │ ├── poll.js │ ├── poll.json │ ├── poll.wxml │ └── poll.wxss ├── poster │ ├── poster.js │ ├── poster.json │ ├── poster.wxml │ └── poster.wxss ├── search │ ├── controller.js │ ├── search.js │ ├── search.json │ ├── search.wxml │ └── search.wxss ├── signin │ ├── controller.js │ ├── signin.js │ ├── signin.json │ ├── signin.wxml │ └── signin.wxss ├── thread │ ├── controller.js │ ├── sublist │ │ ├── sublist.js │ │ ├── sublist.json │ │ ├── sublist.wxml │ │ └── sublist.wxss │ ├── thread.js │ ├── thread.json │ ├── thread.wxml │ ├── thread.wxss │ └── xinput │ │ ├── xinput.js │ │ ├── xinput.json │ │ ├── xinput.wxml │ │ └── xinput.wxss ├── tmpl │ ├── adver │ │ ├── adunit.js │ │ ├── adunit.json │ │ ├── adunit.wxml │ │ └── adunit.wxss │ ├── cmmt │ │ ├── kw-comment.js │ │ ├── kw-comment.json │ │ ├── kw-comment.wxml │ │ └── kw-comment.wxss │ ├── draw │ │ ├── controller.js │ │ ├── drawer.js │ │ ├── drawer.json │ │ ├── drawer.wxml │ │ └── drawer.wxss │ ├── goods │ │ ├── goods.js │ │ ├── goods.json │ │ ├── goods.wxml │ │ └── goods.wxss │ ├── img-grid │ │ ├── img-grid.js │ │ ├── img-grid.json │ │ ├── img-grid.wxml │ │ └── img-grid.wxss │ ├── input │ │ ├── kw-input.js │ │ ├── kw-input.json │ │ ├── kw-input.wxml │ │ └── kw-input.wxss │ ├── like │ │ ├── kw-like.js │ │ ├── kw-like.json │ │ ├── kw-like.wxml │ │ └── kw-like.wxss │ ├── link │ │ ├── kw-link.js │ │ ├── kw-link.json │ │ ├── kw-link.wxml │ │ └── kw-link.wxss │ ├── loading │ │ ├── loading.js │ │ ├── loading.json │ │ ├── loading.wxml │ │ └── loading.wxss │ ├── location │ │ ├── location.js │ │ ├── location.json │ │ ├── location.wxml │ │ └── location.wxss │ ├── login │ │ ├── dialog.js │ │ ├── dialog.json │ │ ├── dialog.wxml │ │ └── dialog.wxss │ ├── poll │ │ ├── poll.js │ │ ├── poll.json │ │ ├── poll.wxml │ │ └── poll.wxss │ ├── post │ │ ├── kw-post.js │ │ ├── kw-post.json │ │ ├── kw-post.wxml │ │ └── kw-post.wxss │ ├── tab │ │ ├── kw-tab.js │ │ ├── kw-tab.json │ │ ├── kw-tab.wxml │ │ └── kw-tab.wxss │ ├── text │ │ ├── kw-text.js │ │ ├── kw-text.json │ │ ├── kw-text.wxml │ │ └── kw-text.wxss │ └── video │ │ ├── kw-video.js │ │ ├── kw-video.json │ │ ├── kw-video.wxml │ │ └── kw-video.wxss ├── user │ ├── cmmt │ │ ├── comment.js │ │ ├── comment.json │ │ ├── comment.wxml │ │ ├── comment.wxss │ │ └── controller.js │ ├── favor │ │ ├── controller.js │ │ ├── favor.js │ │ ├── favor.json │ │ ├── favor.wxml │ │ └── favor.wxss │ ├── favorite │ │ ├── controller.js │ │ ├── favorite.js │ │ ├── favorite.json │ │ ├── favorite.wxml │ │ └── favorite.wxss │ ├── friend │ │ ├── friend.js │ │ ├── friend.json │ │ ├── friend.wxml │ │ └── friend.wxss │ ├── post │ │ ├── controller.js │ │ ├── post.js │ │ ├── post.json │ │ ├── post.wxml │ │ └── post.wxss │ └── user │ │ ├── controller.js │ │ ├── user.js │ │ ├── user.json │ │ ├── user.wxml │ │ └── user.wxss ├── webview │ ├── webview.js │ ├── webview.json │ ├── webview.wxml │ └── webview.wxss └── writer │ ├── comps │ └── link │ │ ├── linkeditor.js │ │ ├── linkeditor.json │ │ ├── linkeditor.wxml │ │ └── linkeditor.wxss │ ├── controller.js │ ├── writer.js │ ├── writer.json │ ├── writer.wxml │ └── writer.wxss ├── project.config.json ├── res ├── 555.png ├── act.png ├── act2.png ├── arrow_right.png ├── auditing.png ├── blue │ ├── arrow_left.png │ ├── arrow_right.png │ ├── clear.png │ ├── comment.png │ ├── erweima.png │ ├── home.png │ ├── home_focus.png │ ├── like.png │ ├── liked.png │ ├── me.png │ ├── me_focus.png │ ├── msg.png │ ├── msg_at.png │ ├── msg_cmt.png │ ├── msg_focus.png │ ├── msg_like.png │ ├── my_cmt.png │ ├── my_favor.png │ ├── my_follow.png │ ├── my_like.png │ ├── my_point.png │ ├── my_post.png │ ├── share.png │ ├── share_to.png │ ├── signin.png │ ├── speaker.png │ └── write.png ├── circle_mask.png ├── cyan │ ├── arrow_left.png │ ├── arrow_right.png │ ├── clear.png │ ├── comment.png │ ├── erweima.png │ ├── home.png │ ├── home_focus.png │ ├── like.png │ ├── liked.png │ ├── me.png │ ├── me_focus.png │ ├── msg.png │ ├── msg_at.png │ ├── msg_cmt.png │ ├── msg_focus.png │ ├── msg_like.png │ ├── my_cmt.png │ ├── my_favor.png │ ├── my_follow.png │ ├── my_like.png │ ├── my_point.png │ ├── my_post.png │ ├── share.png │ ├── share_to.png │ ├── signin.png │ ├── speaker.png │ └── write.png ├── default │ ├── arrow_left.png │ ├── arrow_right.png │ ├── clear.png │ ├── comment.png │ ├── erweima.png │ ├── home.png │ ├── home_focus.png │ ├── like.png │ ├── liked.png │ ├── me.png │ ├── me_focus.png │ ├── msg.png │ ├── msg_at.png │ ├── msg_cmt.png │ ├── msg_done.png │ ├── msg_focus.png │ ├── msg_like.png │ ├── my_cmt.png │ ├── my_favor.png │ ├── my_follow.png │ ├── my_like.png │ ├── my_point.png │ ├── my_post.png │ ├── profile_setting.png │ ├── share.png │ ├── share_to.png │ ├── signin.png │ ├── speaker.png │ └── write.png ├── del.png ├── down.png ├── empty.png ├── enroll.png ├── form.png ├── group.png ├── kefu.png ├── link.png ├── link_dark.png ├── loading.png ├── location.png ├── location1.png ├── menu.png ├── nav_msg.png ├── photo.png ├── placeholder.png ├── plus.png ├── rank_1.png ├── rank_2.png ├── rank_3.png ├── refresh.png ├── richtext.png ├── right.png ├── search.png ├── stop.png ├── time.png ├── verified.png ├── video.png ├── video_play.png ├── wechat.png └── wx_moment.png ├── sitemap.json ├── style ├── icon.wxss └── weui.wxss └── utils ├── api.js ├── b64.js ├── biz.js ├── h2j ├── discode.js ├── html2json.js ├── htmlparser.js └── parser.js ├── meu.js └── util.js /app.json: -------------------------------------------------------------------------------- 1 | { 2 | "pages": [ 3 | "pages/login/login", 4 | "pages/home/home", 5 | "pages/message/message", 6 | "pages/me/me", 7 | "pages/thread/thread", 8 | "pages/writer/writer", 9 | "pages/message/list/favor", 10 | "pages/message/list/comment", 11 | "pages/user/post/post", 12 | "pages/user/cmmt/comment", 13 | "pages/user/favor/favor", 14 | "pages/user/favorite/favorite", 15 | "pages/user/user/user", 16 | "pages/user/friend/friend", 17 | "pages/webview/webview", 18 | "pages/chat/chat", 19 | "pages/exp/exp", 20 | "pages/signin/signin", 21 | "pages/me/edit", 22 | "pages/poster/poster", 23 | "pages/poll/poll", 24 | "pages/join/join", 25 | "pages/point/point", 26 | "pages/point/history/history", 27 | "pages/search/search", 28 | "pages/enroll/enroll", 29 | "pages/enroll/user/user", 30 | "pages/form/form" 31 | ], 32 | "permission": { 33 | "scope.userLocation": { 34 | "desc": "显示发帖的位置" 35 | } 36 | }, 37 | "tabBar": { 38 | "list": [ 39 | { 40 | "pagePath": "pages/home/home", 41 | "text": "首页" 42 | }, 43 | { 44 | "pagePath": "pages/message/message", 45 | "text": "消息" 46 | }, 47 | { 48 | "pagePath": "pages/me/me", 49 | "text": "我的" 50 | } 51 | ], 52 | "color": "#b5b5b5", 53 | "selectedColor": "#b5b5b5" 54 | }, 55 | "window": { 56 | "backgroundTextStyle": "light", 57 | "navigationBarBackgroundColor": "#fff", 58 | "navigationBarTextStyle": "black", 59 | "backgroundColor": "#eee" 60 | }, 61 | "sitemapLocation": "sitemap.json" 62 | } -------------------------------------------------------------------------------- /kawa.js: -------------------------------------------------------------------------------- 1 | const theme_default = { 2 | Image: '/res/default', 3 | MainColor: '#A7B1B3', 4 | FavorColor: '#ff325A', 5 | TabSelectedColor: '#333', 6 | } 7 | 8 | const theme_blue = { 9 | Image: '/res/blue', 10 | MainColor: '#1890FF', 11 | } 12 | 13 | const theme_cyan = { 14 | Image: '/res/cyan', 15 | MainColor: '#20ACAB', 16 | } 17 | 18 | module.exports = { 19 | AppKey: "J3PDS76SH6JASQHX2QAY5VQ3QINXIYLEMVIREFADB7Z2BHCWC3VA====", 20 | Theme: theme_blue, 21 | } 22 | -------------------------------------------------------------------------------- /pages/chat/chat.json: -------------------------------------------------------------------------------- 1 | { 2 | "navigationBarTitleText": "私信", 3 | "backgroundTextStyle": "dark", 4 | "usingComponents": { 5 | "kw-loading": "../tmpl/loading/loading", 6 | "kw-input": "../tmpl/input/kw-input" 7 | } 8 | } -------------------------------------------------------------------------------- /pages/chat/chat.wxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |