ting_model 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/Gemfile +4 -0
- data/README.md +41 -0
- data/Rakefile +1 -0
- data/gen_shards.rb +59 -0
- data/lib/extenders/album_extender.rb +9 -0
- data/lib/extenders/block_avatar_extender.rb +5 -0
- data/lib/extenders/chat_extender.rb +5 -0
- data/lib/extenders/class_node.rb +21 -0
- data/lib/extenders/comment_extender.rb +5 -0
- data/lib/extenders/favorite_album_extender.rb +5 -0
- data/lib/extenders/favorite_extender.rb +5 -0
- data/lib/extenders/following_extender.rb +13 -0
- data/lib/extenders/following_group_extender.rb +5 -0
- data/lib/extenders/following_tag_extender.rb +5 -0
- data/lib/extenders/followingx2_group_extender.rb +5 -0
- data/lib/extenders/inbox_extender.rb +5 -0
- data/lib/extenders/linkman_extender.rb +5 -0
- data/lib/extenders/outbox_extender.rb +5 -0
- data/lib/extenders/track_block_extender.rb +5 -0
- data/lib/extenders/track_extender.rb +5 -0
- data/lib/extenders/track_in_record_extender.rb +76 -0
- data/lib/extenders/track_picture_extender.rb +5 -0
- data/lib/extenders/track_record_extender.rb +5 -0
- data/lib/extenders/track_rich_extender.rb +5 -0
- data/lib/extenders/track_set_extender.rb +79 -0
- data/lib/extenders/track_set_rich_extender.rb +5 -0
- data/lib/extenders/user_tag_extender.rb +5 -0
- data/lib/ting_model.rb +1 -0
- data/lib/ting_model/advertisement.rb +5 -0
- data/lib/ting_model/advertisement_new.rb +4 -0
- data/lib/ting_model/album.rb +31 -0
- data/lib/ting_model/album_node.rb +9 -0
- data/lib/ting_model/album_origin.rb +137 -0
- data/lib/ting_model/album_pod.rb +8 -0
- data/lib/ting_model/album_podcat.rb +8 -0
- data/lib/ting_model/android_channel.rb +4 -0
- data/lib/ting_model/android_channel_binding.rb +7 -0
- data/lib/ting_model/announcement.rb +12 -0
- data/lib/ting_model/app_recommend.rb +55 -0
- data/lib/ting_model/application_v_category.rb +5 -0
- data/lib/ting_model/approve_group.rb +4 -0
- data/lib/ting_model/approving_track.rb +4 -0
- data/lib/ting_model/approving_track_log.rb +4 -0
- data/lib/ting_model/audit_log.rb +5 -0
- data/lib/ting_model/baidu_count.rb +4 -0
- data/lib/ting_model/bind_user.rb +7 -0
- data/lib/ting_model/binding_app.rb +4 -0
- data/lib/ting_model/biting.rb +4 -0
- data/lib/ting_model/black_user.rb +9 -0
- data/lib/ting_model/block_avatar.rb +31 -0
- data/lib/ting_model/block_avatar_node.rb +10 -0
- data/lib/ting_model/block_avatar_origin.rb +24 -0
- data/lib/ting_model/category.rb +20 -0
- data/lib/ting_model/category_icon_version.rb +12 -0
- data/lib/ting_model/chat.rb +31 -0
- data/lib/ting_model/chat_node.rb +10 -0
- data/lib/ting_model/chat_origin.rb +32 -0
- data/lib/ting_model/comment.rb +80 -0
- data/lib/ting_model/comment_node.rb +10 -0
- data/lib/ting_model/comment_origin.rb +116 -0
- data/lib/ting_model/dead_album.rb +8 -0
- data/lib/ting_model/dead_track.rb +8 -0
- data/lib/ting_model/dead_user.rb +7 -0
- data/lib/ting_model/default_follow.rb +6 -0
- data/lib/ting_model/delayed_album.rb +26 -0
- data/lib/ting_model/delayed_publish.rb +4 -0
- data/lib/ting_model/delayed_track.rb +43 -0
- data/lib/ting_model/discovery_page.rb +17 -0
- data/lib/ting_model/editor_recommend.rb +5 -0
- data/lib/ting_model/favorite.rb +59 -0
- data/lib/ting_model/favorite_album.rb +50 -0
- data/lib/ting_model/favorite_album_node.rb +9 -0
- data/lib/ting_model/favorite_album_origin.rb +88 -0
- data/lib/ting_model/favorite_node.rb +10 -0
- data/lib/ting_model/favorite_origin.rb +138 -0
- data/lib/ting_model/feed.rb +159 -0
- data/lib/ting_model/file_upload.rb +4 -0
- data/lib/ting_model/file_upload_record.rb +4 -0
- data/lib/ting_model/focus.rb +16 -0
- data/lib/ting_model/focus_album.rb +9 -0
- data/lib/ting_model/focus_current.rb +10 -0
- data/lib/ting_model/focus_track.rb +17 -0
- data/lib/ting_model/focus_user.rb +7 -0
- data/lib/ting_model/follower.rb +27 -0
- data/lib/ting_model/follower_node.rb +10 -0
- data/lib/ting_model/follower_origin.rb +34 -0
- data/lib/ting_model/follower_tag.rb +27 -0
- data/lib/ting_model/follower_tag_node.rb +10 -0
- data/lib/ting_model/follower_tag_origin.rb +14 -0
- data/lib/ting_model/followerx2_group.rb +27 -0
- data/lib/ting_model/followerx2_group_node.rb +10 -0
- data/lib/ting_model/followerx2_group_origin.rb +12 -0
- data/lib/ting_model/following.rb +57 -0
- data/lib/ting_model/following_group.rb +31 -0
- data/lib/ting_model/following_group_node.rb +10 -0
- data/lib/ting_model/following_group_origin.rb +29 -0
- data/lib/ting_model/following_node.rb +10 -0
- data/lib/ting_model/following_origin.rb +72 -0
- data/lib/ting_model/following_tag.rb +52 -0
- data/lib/ting_model/following_tag_node.rb +10 -0
- data/lib/ting_model/following_tag_origin.rb +59 -0
- data/lib/ting_model/followingx2_group.rb +31 -0
- data/lib/ting_model/followingx2_group_node.rb +10 -0
- data/lib/ting_model/followingx2_group_origin.rb +23 -0
- data/lib/ting_model/human_category.rb +17 -0
- data/lib/ting_model/human_recommend_album.rb +8 -0
- data/lib/ting_model/human_recommend_album_category_tag.rb +4 -0
- data/lib/ting_model/human_recommend_album_tag.rb +4 -0
- data/lib/ting_model/human_recommend_category_album.rb +7 -0
- data/lib/ting_model/human_recommend_category_tag.rb +6 -0
- data/lib/ting_model/human_recommend_category_tag_album.rb +7 -0
- data/lib/ting_model/human_recommend_category_tag_track.rb +11 -0
- data/lib/ting_model/human_recommend_category_tag_user.rb +7 -0
- data/lib/ting_model/human_recommend_category_track.rb +11 -0
- data/lib/ting_model/human_recommend_category_user.rb +7 -0
- data/lib/ting_model/human_recommend_tag.rb +5 -0
- data/lib/ting_model/human_recommend_tag_album.rb +7 -0
- data/lib/ting_model/human_recommend_tag_track.rb +9 -0
- data/lib/ting_model/human_recommend_tag_user.rb +7 -0
- data/lib/ting_model/human_recommend_track.rb +9 -0
- data/lib/ting_model/human_recommend_user.rb +7 -0
- data/lib/ting_model/icon_version.rb +7 -0
- data/lib/ting_model/inbox.rb +31 -0
- data/lib/ting_model/inbox_node.rb +10 -0
- data/lib/ting_model/inbox_origin.rb +59 -0
- data/lib/ting_model/latest_album.rb +9 -0
- data/lib/ting_model/latest_favorite.rb +10 -0
- data/lib/ting_model/latest_track.rb +10 -0
- data/lib/ting_model/linkman.rb +30 -0
- data/lib/ting_model/linkman_node.rb +10 -0
- data/lib/ting_model/linkman_origin.rb +26 -0
- data/lib/ting_model/liteapp.rb +7 -0
- data/lib/ting_model/liteapp_album.rb +4 -0
- data/lib/ting_model/liteapp_tag.rb +4 -0
- data/lib/ting_model/lover.rb +27 -0
- data/lib/ting_model/lover_album.rb +27 -0
- data/lib/ting_model/lover_album_node.rb +9 -0
- data/lib/ting_model/lover_album_origin.rb +39 -0
- data/lib/ting_model/lover_node.rb +10 -0
- data/lib/ting_model/lover_origin.rb +45 -0
- data/lib/ting_model/m_user.rb +8 -0
- data/lib/ting_model/message_log.rb +4 -0
- data/lib/ting_model/message_picture.rb +5 -0
- data/lib/ting_model/meta.rb +4 -0
- data/lib/ting_model/mixing_album.rb +7 -0
- data/lib/ting_model/mobad_stat.rb +9 -0
- data/lib/ting_model/news.rb +16 -0
- data/lib/ting_model/out_link.rb +7 -0
- data/lib/ting_model/outbox.rb +31 -0
- data/lib/ting_model/outbox_node.rb +10 -0
- data/lib/ting_model/outbox_origin.rb +59 -0
- data/lib/ting_model/outlink_stat.rb +4 -0
- data/lib/ting_model/personal_setting.rb +26 -0
- data/lib/ting_model/push_message.rb +4 -0
- data/lib/ting_model/receive_laya.rb +9 -0
- data/lib/ting_model/recommend_album.rb +7 -0
- data/lib/ting_model/recommend_category_album.rb +7 -0
- data/lib/ting_model/recommend_category_tag.rb +5 -0
- data/lib/ting_model/recommend_category_tag_album.rb +7 -0
- data/lib/ting_model/recommend_category_tag_track.rb +9 -0
- data/lib/ting_model/recommend_category_tag_user.rb +7 -0
- data/lib/ting_model/recommend_category_track.rb +9 -0
- data/lib/ting_model/recommend_category_user.rb +7 -0
- data/lib/ting_model/recommend_tag.rb +15 -0
- data/lib/ting_model/recommend_tag_album.rb +7 -0
- data/lib/ting_model/recommend_tag_track.rb +9 -0
- data/lib/ting_model/recommend_tag_user.rb +7 -0
- data/lib/ting_model/recommend_track.rb +9 -0
- data/lib/ting_model/recommend_user.rb +7 -0
- data/lib/ting_model/reject_reason.rb +17 -0
- data/lib/ting_model/report.rb +33 -0
- data/lib/ting_model/report_information.rb +29 -0
- data/lib/ting_model/search_black_uid.rb +7 -0
- data/lib/ting_model/search_key.rb +6 -0
- data/lib/ting_model/send_msg.rb +4 -0
- data/lib/ting_model/shards.rb +2626 -0
- data/lib/ting_model/sms.rb +19 -0
- data/lib/ting_model/special.rb +17 -0
- data/lib/ting_model/special_album.rb +4 -0
- data/lib/ting_model/special_track.rb +4 -0
- data/lib/ting_model/sub_app_advertisement_new.rb +4 -0
- data/lib/ting_model/subappad_stat.rb +9 -0
- data/lib/ting_model/system_configuration.rb +5 -0
- data/lib/ting_model/temp_blob.rb +5 -0
- data/lib/ting_model/track.rb +30 -0
- data/lib/ting_model/track_block.rb +46 -0
- data/lib/ting_model/track_block_node.rb +10 -0
- data/lib/ting_model/track_block_origin.rb +69 -0
- data/lib/ting_model/track_in_record.rb +27 -0
- data/lib/ting_model/track_in_record_node.rb +10 -0
- data/lib/ting_model/track_in_record_origin.rb +134 -0
- data/lib/ting_model/track_node.rb +9 -0
- data/lib/ting_model/track_origin.rb +224 -0
- data/lib/ting_model/track_picture.rb +32 -0
- data/lib/ting_model/track_picture_node.rb +10 -0
- data/lib/ting_model/track_picture_origin.rb +26 -0
- data/lib/ting_model/track_record.rb +31 -0
- data/lib/ting_model/track_record_node.rb +9 -0
- data/lib/ting_model/track_record_origin.rb +64 -0
- data/lib/ting_model/track_rich.rb +30 -0
- data/lib/ting_model/track_rich_node.rb +10 -0
- data/lib/ting_model/track_rich_origin.rb +31 -0
- data/lib/ting_model/track_set.rb +27 -0
- data/lib/ting_model/track_set_node.rb +9 -0
- data/lib/ting_model/track_set_origin.rb +147 -0
- data/lib/ting_model/track_set_rich.rb +30 -0
- data/lib/ting_model/track_set_rich_node.rb +10 -0
- data/lib/ting_model/track_set_rich_origin.rb +24 -0
- data/lib/ting_model/uid_approve_group.rb +4 -0
- data/lib/ting_model/upload_track_share_temp.rb +6 -0
- data/lib/ting_model/user_link.rb +10 -0
- data/lib/ting_model/user_log.rb +33 -0
- data/lib/ting_model/user_tag.rb +31 -0
- data/lib/ting_model/user_tag_node.rb +10 -0
- data/lib/ting_model/user_tag_origin.rb +23 -0
- data/lib/ting_model/user_v_category.rb +8 -0
- data/lib/ting_model/v_application.rb +35 -0
- data/lib/ting_model/v_category.rb +7 -0
- data/lib/ting_model/v_user.rb +7 -0
- data/lib/ting_model/varification_code.rb +6 -0
- data/lib/ting_model/web_advertisement.rb +6 -0
- data/lib/ting_model/web_discovery_page.rb +10 -0
- data/lib/ting_model/web_recommend.rb +6 -0
- data/lib/ting_model/weixin_account.rb +8 -0
- data/lib/ting_model/weixin_keyword.rb +4 -0
- data/lib/ting_model/weixin_monitor.rb +4 -0
- data/ting_model.gemspec +251 -0
- metadata +313 -0
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
require File.expand_path('../favorite_node', __FILE__)
|
|
2
|
+
require File.expand_path('../favorite_origin', __FILE__)
|
|
3
|
+
|
|
4
|
+
class Favorite < FavoriteOrigin
|
|
5
|
+
|
|
6
|
+
def self.shard(key)
|
|
7
|
+
Object.const_get(FavoriteNode.seek(key).class_name)
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def self.gtn(key)
|
|
11
|
+
FavoriteNode.seek(key).table_name
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def self.stn(key)
|
|
15
|
+
self.table_name = self.gtn(key)
|
|
16
|
+
self
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
before_save do |r|
|
|
20
|
+
r.class.table_name = Favorite.gtn(r.uid)
|
|
21
|
+
|
|
22
|
+
unless r.id
|
|
23
|
+
r.id = Favorite.next_id
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
tir = TrackInRecord.fetch(r.track_id)
|
|
27
|
+
if tir
|
|
28
|
+
r.is_public = tir.is_public
|
|
29
|
+
r.track_uid = tir.uid
|
|
30
|
+
r.track_nickname = tir.nickname
|
|
31
|
+
r.track_avatar_path = tir.avatar_path
|
|
32
|
+
r.track_duration = tir.duration
|
|
33
|
+
r.title = tir.title
|
|
34
|
+
r.intro = tir.intro
|
|
35
|
+
r.duration = tir.duration
|
|
36
|
+
r.cover_path = tir.cover_path
|
|
37
|
+
r.tags = tir.tags
|
|
38
|
+
r.intro = tir.intro
|
|
39
|
+
r.play_path = tir.play_path
|
|
40
|
+
r.play_path_32 = tir.play_path_32
|
|
41
|
+
r.play_path_64 = tir.play_path_64
|
|
42
|
+
r.play_path_128 = tir.play_path_128
|
|
43
|
+
r.track_created_at = tir.created_at
|
|
44
|
+
r.allow_download = tir.allow_download
|
|
45
|
+
r.allow_comment = tir.allow_comment
|
|
46
|
+
r.download_path = tir.download_path
|
|
47
|
+
r.album_id = tir.album_id
|
|
48
|
+
r.album_title = tir.album_title
|
|
49
|
+
r.album_cover_path = tir.album_cover_path
|
|
50
|
+
r.category_id = tir.category_id
|
|
51
|
+
r.user_source = tir.user_source
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
before_destroy do |r|
|
|
56
|
+
r.class.table_name = Favorite.gtn(r.uid)
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
end
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
require File.expand_path('../favorite_album_node', __FILE__)
|
|
2
|
+
require File.expand_path('../favorite_album_origin', __FILE__)
|
|
3
|
+
|
|
4
|
+
class FavoriteAlbum < FavoriteAlbumOrigin
|
|
5
|
+
|
|
6
|
+
def self.shard(key)
|
|
7
|
+
Object.const_get(FavoriteAlbumNode.seek(key).class_name)
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def self.gtn(key)
|
|
11
|
+
FavoriteAlbumNode.seek(key).table_name
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def self.stn(key)
|
|
15
|
+
self.table_name = self.gtn(key)
|
|
16
|
+
self
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
before_save do |r|
|
|
20
|
+
r.class.table_name = FavoriteAlbum.gtn(r.uid)
|
|
21
|
+
|
|
22
|
+
unless r.id
|
|
23
|
+
r.id = FavoriteAlbum.next_id
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
album = TrackSet.fetch(r.album_id)
|
|
27
|
+
if album
|
|
28
|
+
r.album_uid = album.uid
|
|
29
|
+
r.album_nickname = album.nickname
|
|
30
|
+
r.album_avatar_path = album.avatar_path
|
|
31
|
+
r.title = album.title
|
|
32
|
+
r.tags = album.tags
|
|
33
|
+
r.intro = album.intro
|
|
34
|
+
r.cover_path = album.cover_path
|
|
35
|
+
r.music_category = album.music_category
|
|
36
|
+
r.album_created_at = album.created_at
|
|
37
|
+
r.category_id = album.category_id
|
|
38
|
+
r.op_type = album.op_type
|
|
39
|
+
r.user_source = album.user_source
|
|
40
|
+
r.is_crawler = album.is_crawler
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
true
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
before_destroy do |r|
|
|
47
|
+
r.class.table_name = FavoriteAlbum.gtn(r.uid)
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
end
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
require File.expand_path('../../extenders/favorite_album_extender', __FILE__)
|
|
2
|
+
require File.expand_path('../track_set', __FILE__)
|
|
3
|
+
require File.expand_path('../lover_album', __FILE__)
|
|
4
|
+
|
|
5
|
+
class FavoriteAlbumOrigin < ActiveRecord::Base
|
|
6
|
+
extend FavoriteAlbumExtender
|
|
7
|
+
|
|
8
|
+
# 收藏专辑 根据uid分表
|
|
9
|
+
self.table_name = 'tb_favorite_album'
|
|
10
|
+
|
|
11
|
+
attr_accessible :uid,
|
|
12
|
+
:nickname,
|
|
13
|
+
:avatar_path,
|
|
14
|
+
:album_id,
|
|
15
|
+
:album_uid,
|
|
16
|
+
:album_nickname,
|
|
17
|
+
:album_avatar_path,
|
|
18
|
+
:op_type,
|
|
19
|
+
:user_source,
|
|
20
|
+
:is_crawler,
|
|
21
|
+
:title,
|
|
22
|
+
:tags,
|
|
23
|
+
:intro,
|
|
24
|
+
:cover_path,
|
|
25
|
+
:music_category,
|
|
26
|
+
:album_created_at,
|
|
27
|
+
:category_id,
|
|
28
|
+
:created_at,
|
|
29
|
+
:updated_at,
|
|
30
|
+
:upload_source
|
|
31
|
+
|
|
32
|
+
# uid nickname avatar_path --- 用户id 昵称 头像
|
|
33
|
+
# album_id album_uid album_nickname album_avatar_path --- 专辑id 用户id 昵称 头像
|
|
34
|
+
# op_type --- 专辑上传类型 1:自己传的 /2:转发
|
|
35
|
+
# user_source --- 专辑来源 1:原创 /2:采集
|
|
36
|
+
# is_crawler --- 专辑 是否爬虫
|
|
37
|
+
# title tags intro cover_path --- 专辑标题 标签 简介 封面
|
|
38
|
+
# music_category --- 专辑 音乐归类
|
|
39
|
+
# album_created_at --- 专辑创建时间
|
|
40
|
+
# category_id --- 专辑分类id
|
|
41
|
+
# upload_source --- 专辑上传自 1:iphone/2:电脑/3:android
|
|
42
|
+
|
|
43
|
+
validates :uid, presence: true
|
|
44
|
+
|
|
45
|
+
before_save do |r|
|
|
46
|
+
unless r.id
|
|
47
|
+
r.id = FavoriteAlbum.next_id
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
album = TrackSet.fetch(r.album_id)
|
|
51
|
+
if album
|
|
52
|
+
r.album_uid = album.uid
|
|
53
|
+
r.album_nickname = album.nickname
|
|
54
|
+
r.album_avatar_path = album.avatar_path
|
|
55
|
+
r.title = album.title
|
|
56
|
+
r.tags = album.tags
|
|
57
|
+
r.intro = album.intro
|
|
58
|
+
r.cover_path = album.cover_path
|
|
59
|
+
r.music_category = album.music_category
|
|
60
|
+
r.album_created_at = album.created_at
|
|
61
|
+
r.category_id = album.category_id
|
|
62
|
+
r.op_type = album.op_type
|
|
63
|
+
r.user_source = album.user_source
|
|
64
|
+
r.is_crawler = album.is_crawler
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
true
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
after_save do |r|
|
|
71
|
+
hash = r.attributes
|
|
72
|
+
hash.delete_if{|k,v| %w(id created_at updated_at).include? k }
|
|
73
|
+
|
|
74
|
+
lover = LoverAlbum.shard(r.album_id).where(uid: r.uid, album_id: r.album_id).first
|
|
75
|
+
unless lover
|
|
76
|
+
# 创建
|
|
77
|
+
lover = LoverAlbum.shard(r.album_id).new
|
|
78
|
+
end
|
|
79
|
+
lover.id = r.id
|
|
80
|
+
lover.update_attributes(hash)
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
after_destroy do |r|
|
|
84
|
+
lover = LoverAlbum.shard(r.album_id).where(uid: r.uid, album_id: r.album_id).first
|
|
85
|
+
lover.destroy if lover
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
end
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
require File.expand_path('../../extenders/favorite_extender', __FILE__)
|
|
2
|
+
require File.expand_path('../track_in_record', __FILE__)
|
|
3
|
+
require File.expand_path('../lover', __FILE__)
|
|
4
|
+
|
|
5
|
+
class FavoriteOrigin < ActiveRecord::Base
|
|
6
|
+
extend FavoriteExtender
|
|
7
|
+
|
|
8
|
+
# 喜欢声音 根据uid分表
|
|
9
|
+
self.table_name = 'tb_favorite'
|
|
10
|
+
|
|
11
|
+
attr_accessible :is_public, :upload_source,
|
|
12
|
+
:uid, :nickname, :avatar_path,
|
|
13
|
+
:track_id, :track_uid, :track_upload_source, :track_nickname, :track_avatar_path, :track_duration,
|
|
14
|
+
:user_source, :category_id,
|
|
15
|
+
:title, :intro,
|
|
16
|
+
:duration,
|
|
17
|
+
:download_path,
|
|
18
|
+
:play_path, :play_path_32, :play_path_64, :play_path_128,
|
|
19
|
+
:cover_path,
|
|
20
|
+
:cover_path_small, :cover_path_middle, :cover_path_large, :cover_path_wide,
|
|
21
|
+
:cover_path_60, :cover_path_86, :cover_path_640,
|
|
22
|
+
:tags,
|
|
23
|
+
:allow_download, :allow_comment,
|
|
24
|
+
:track_created_at, :track_updated_at,
|
|
25
|
+
:album_id, :album_title, :album_cover_path, :is_v,
|
|
26
|
+
:waveform, :upload_id
|
|
27
|
+
|
|
28
|
+
# is_public --- 是否公开
|
|
29
|
+
# upload_source --- 操作自 1:iphone /2:电脑 /3:android
|
|
30
|
+
# uid nickname avatar_path --- 用户id 昵称 头像地址
|
|
31
|
+
# track_id track_uid track_nickname track_avatar_path --- 声音id uid 昵称 发布者头像
|
|
32
|
+
# track_upload_source --- 声音上传自 1:iphone /2:电脑 /3:android
|
|
33
|
+
# track_duration --- 声音时长
|
|
34
|
+
# user_source --- 声音来源 1:原创/2:采集
|
|
35
|
+
# category_id --- 声音分类id
|
|
36
|
+
# title intro --- 声音标题 简介
|
|
37
|
+
# duration --- 声音时长
|
|
38
|
+
# download_path --- 声音下载地址
|
|
39
|
+
# play_path play_path_32 play_path_64 play_path_128 --- 播放地址原 32Kbps 64Kbps 128Kbps
|
|
40
|
+
# cover_path --- 声音封面路径原
|
|
41
|
+
# cover_path_small cover_path_middle cover_path_large cover_path_wide --- 未使用 50x50 100x100 180x180 400x300
|
|
42
|
+
# cover_path_60 cover_path_86 cover_path_640 --- 60x60 86x86 640x640
|
|
43
|
+
# tags --- 声音标签
|
|
44
|
+
# allow_download allow_comment --- 允许下载 允许评论
|
|
45
|
+
# track_created_at track_updated_at --- 声音创建时间 更新时间
|
|
46
|
+
# album_id album_title album_cover_path --- 专辑id 标题 封面
|
|
47
|
+
# is_v --- 声音作者是否加V
|
|
48
|
+
# waveform upload_id --- 声音波形 上传号
|
|
49
|
+
|
|
50
|
+
validates :uid, presence: true
|
|
51
|
+
|
|
52
|
+
before_save do |r|
|
|
53
|
+
unless r.id
|
|
54
|
+
r.id = Favorite.next_id
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
tir = TrackInRecord.fetch(r.track_id)
|
|
58
|
+
if tir
|
|
59
|
+
r.is_public = tir.is_public
|
|
60
|
+
r.track_uid = tir.uid
|
|
61
|
+
r.track_nickname = tir.nickname
|
|
62
|
+
r.track_avatar_path = tir.avatar_path
|
|
63
|
+
r.track_duration = tir.duration
|
|
64
|
+
r.title = tir.title
|
|
65
|
+
r.intro = tir.intro
|
|
66
|
+
r.duration = tir.duration
|
|
67
|
+
r.cover_path = tir.cover_path
|
|
68
|
+
r.tags = tir.tags
|
|
69
|
+
r.intro = tir.intro
|
|
70
|
+
r.play_path = tir.play_path
|
|
71
|
+
r.play_path_32 = tir.play_path_32
|
|
72
|
+
r.play_path_64 = tir.play_path_64
|
|
73
|
+
r.play_path_128 = tir.play_path_128
|
|
74
|
+
r.track_created_at = tir.created_at
|
|
75
|
+
r.allow_download = tir.allow_download
|
|
76
|
+
r.allow_comment = tir.allow_comment
|
|
77
|
+
r.download_path = tir.download_path
|
|
78
|
+
r.album_id = tir.album_id
|
|
79
|
+
r.album_title = tir.album_title
|
|
80
|
+
r.album_cover_path = tir.album_cover_path
|
|
81
|
+
r.category_id = tir.category_id
|
|
82
|
+
r.user_source = tir.user_source
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
after_save do |r|
|
|
87
|
+
hash = r.attributes
|
|
88
|
+
hash.delete_if{|k,v| %w(id created_at updated_at).include? k }
|
|
89
|
+
|
|
90
|
+
lover = Lover.shard(r.track_id).where(uid: r.uid, track_id: r.track_id).first
|
|
91
|
+
unless lover
|
|
92
|
+
# 创建
|
|
93
|
+
lover = Lover.shard(r.track_id).new
|
|
94
|
+
end
|
|
95
|
+
lover.id = r.id
|
|
96
|
+
lover.update_attributes(hash)
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
after_destroy do |r|
|
|
100
|
+
lover = Lover.shard(r.track_id).where(uid: r.uid, track_id: r.track_id).first
|
|
101
|
+
lover.destroy if lover
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
def to_topic_hash
|
|
105
|
+
{
|
|
106
|
+
created_at: self.created_at,
|
|
107
|
+
updated_at: self.updated_at,
|
|
108
|
+
id: self.id,
|
|
109
|
+
uid: self.uid,
|
|
110
|
+
nickname: self.nickname,
|
|
111
|
+
avatar_path: self.avatar_path,
|
|
112
|
+
track_id: self.track_id,
|
|
113
|
+
track_uid: self.track_uid,
|
|
114
|
+
track_nickname: self.track_nickname,
|
|
115
|
+
track_avatar_path: self.track_avatar_path,
|
|
116
|
+
track_duration: self.track_duration,
|
|
117
|
+
user_source: self.user_source,
|
|
118
|
+
category_id: self.category_id,
|
|
119
|
+
tags: self.tags,
|
|
120
|
+
title: self.title,
|
|
121
|
+
intro: self.intro,
|
|
122
|
+
cover_path: self.cover_path,
|
|
123
|
+
duration: self.duration,
|
|
124
|
+
download_path: self.download_path,
|
|
125
|
+
play_path: self.play_path,
|
|
126
|
+
play_path_128: self.play_path_128,
|
|
127
|
+
play_path_64: self.play_path_64,
|
|
128
|
+
play_path_32: self.play_path_32,
|
|
129
|
+
track_created_at: self.track_created_at,
|
|
130
|
+
allow_download: self.allow_download,
|
|
131
|
+
allow_comment: self.allow_comment,
|
|
132
|
+
album_id: self.album_id,
|
|
133
|
+
album_title: self.album_title,
|
|
134
|
+
album_cover_path: self.album_cover_path
|
|
135
|
+
}
|
|
136
|
+
end
|
|
137
|
+
|
|
138
|
+
end
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
class Feed < ActiveRecord::Base
|
|
2
|
+
self.table_name = 'tb_feed'
|
|
3
|
+
|
|
4
|
+
attr_accessible :album_id, :album_title, :track_id, :content, :play_url, :type, :uid
|
|
5
|
+
#老版本START
|
|
6
|
+
#现在未使用 获取feed的数据
|
|
7
|
+
def self.get_feed(uid,current_page,page_size)
|
|
8
|
+
begin
|
|
9
|
+
Yajl::Parser.parse FEED_WEB.getWebFeed(uid,current_page,page_size)
|
|
10
|
+
rescue Exception => e
|
|
11
|
+
logger.error e.message
|
|
12
|
+
nil
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
#获取feed event的数据
|
|
17
|
+
def self.get_feed_by_score(uid,timeLine,page_size,type=0)
|
|
18
|
+
begin
|
|
19
|
+
Yajl::Parser.parse FEED_WEB.getWebEventJson(uid,timeLine,page_size,type)
|
|
20
|
+
rescue Exception => e
|
|
21
|
+
logger.error e.message
|
|
22
|
+
nil
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
#获取feed 声音流的数据
|
|
26
|
+
def self.get_feed_content_by_score(uid,timeLine,page_size,type=0)
|
|
27
|
+
begin
|
|
28
|
+
Yajl::Parser.parse FEED_WEB.getContentFeedJson(uid,timeLine,page_size,type)
|
|
29
|
+
rescue Exception => e
|
|
30
|
+
logger.error e.message
|
|
31
|
+
nil
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
#删除feed
|
|
36
|
+
def self.del_feed(uid,id,groupIDs,type='event')
|
|
37
|
+
begin
|
|
38
|
+
FEED_WEB.delFeeds(uid,id,type,groupIDs)
|
|
39
|
+
rescue Exception => e
|
|
40
|
+
logger.error e.message
|
|
41
|
+
nil
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
#获得用户未读数量
|
|
46
|
+
def self.no_read_num uid
|
|
47
|
+
begin
|
|
48
|
+
FEED_WEB.getAllNoReadNum(uid)
|
|
49
|
+
rescue Exception => e
|
|
50
|
+
logger.error e.message
|
|
51
|
+
nil
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
#老版本END
|
|
55
|
+
|
|
56
|
+
#获取feed event的数据
|
|
57
|
+
def self.get_event_by_timeline(key,timeLine,page_size,type)
|
|
58
|
+
begin
|
|
59
|
+
Yajl::Parser.parse FEED_WEB.getWebEventJsonTimeline(key,timeLine,page_size,type)
|
|
60
|
+
rescue Exception => e
|
|
61
|
+
logger.error e.message
|
|
62
|
+
nil
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
#获取feed event的数据
|
|
67
|
+
def self.get_event_by_range(key,offset,limit)
|
|
68
|
+
begin
|
|
69
|
+
Yajl::Parser.parse FEED_WEB.getWebEventJsonRange(key,offset,limit)
|
|
70
|
+
rescue Exception => e
|
|
71
|
+
logger.error e.message
|
|
72
|
+
nil
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
#获取feed 声音流的数据
|
|
77
|
+
def self.get_track_by_timeline(key,timeLine,page_size,type)
|
|
78
|
+
begin
|
|
79
|
+
Yajl::Parser.parse FEED_WEB.getWebTrackJsonTimeline(key,timeLine,page_size,type)
|
|
80
|
+
rescue Exception => e
|
|
81
|
+
logger.error e.message
|
|
82
|
+
nil
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
#获取feed event的数据
|
|
87
|
+
def self.get_track_by_range(key,offset,limit)
|
|
88
|
+
begin
|
|
89
|
+
Yajl::Parser.parse FEED_WEB.getWebTrackJsonRange(key,offset,limit)
|
|
90
|
+
rescue Exception => e
|
|
91
|
+
logger.error e.message
|
|
92
|
+
nil
|
|
93
|
+
end
|
|
94
|
+
end
|
|
95
|
+
#删除feed
|
|
96
|
+
# @param uid 用户id
|
|
97
|
+
# @param feedId feed的id
|
|
98
|
+
# @param groupIds 分组id
|
|
99
|
+
# @param type feed的类型 event|sound
|
|
100
|
+
def self.deleteFeed(uid,feedId,groupIds,type)
|
|
101
|
+
begin
|
|
102
|
+
FEED_WEB.deleteFeed(uid,feedId,type,groupIds)
|
|
103
|
+
rescue Exception => e
|
|
104
|
+
logger.error e.message
|
|
105
|
+
nil
|
|
106
|
+
end
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
#获得用户未读数量
|
|
110
|
+
# @param key 用户id或者用户id+分组id
|
|
111
|
+
def self.no_read_num2 key
|
|
112
|
+
begin
|
|
113
|
+
FEED_WEB.getWebUnreadNumJson(key)
|
|
114
|
+
rescue Exception => e
|
|
115
|
+
logger.error e.message
|
|
116
|
+
nil
|
|
117
|
+
end
|
|
118
|
+
end
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
#现在未使用 获得feed的播放列表
|
|
122
|
+
def self.get_play_list uid,page_size
|
|
123
|
+
begin
|
|
124
|
+
FEED_WEB.getContentList(uid,page_size)
|
|
125
|
+
rescue Exception => e
|
|
126
|
+
logger.error e.message
|
|
127
|
+
nil
|
|
128
|
+
end
|
|
129
|
+
end
|
|
130
|
+
#去除内容,仅保留分页信息的feed
|
|
131
|
+
def self.get_feed_data feed,timeLine
|
|
132
|
+
feedData = feed["feedData"]
|
|
133
|
+
if feedData && feedData.length !=0
|
|
134
|
+
timeLine = feedData[feedData.length-1]['timeLine']
|
|
135
|
+
feed.store("timeLine",timeLine)
|
|
136
|
+
end
|
|
137
|
+
feed.delete "feedData"
|
|
138
|
+
if feed['timeLine'].nil?
|
|
139
|
+
feed['timeLine']=timeLine
|
|
140
|
+
end
|
|
141
|
+
|
|
142
|
+
feed.to_json
|
|
143
|
+
end
|
|
144
|
+
#组装所有的用户信息
|
|
145
|
+
def self.get_feed_uids feed
|
|
146
|
+
feedData = feed["feedData"]
|
|
147
|
+
uids = Array.new
|
|
148
|
+
if feedData && feedData.length !=0
|
|
149
|
+
feedData.each do |f|
|
|
150
|
+
#判断转发
|
|
151
|
+
if f['type'] && f['type']=='fts'
|
|
152
|
+
uids.push(f['toUid'])
|
|
153
|
+
end
|
|
154
|
+
uids.push(f['uid'])
|
|
155
|
+
end
|
|
156
|
+
end
|
|
157
|
+
uids.uniq
|
|
158
|
+
end
|
|
159
|
+
end
|