mirror of
https://github.com/the1812/Bilibili-Evolved.git
synced 2025-11-04 21:22:45 +08:00
1 line
6.9 KiB
JavaScript
1 line
6.9 KiB
JavaScript
(()=>{return(e,i)=>{const t=`<div class=bangumi-timeline><div class=timeline-day v-for="t of timeline":key=t.date><div class=date-container :class="{today: t.isToday}"><div class=icon :class="['day-of-week-' + t.dayOfWeek]"></div><div class=date>{{t.date}}</div><div class=day-of-week>{{t.dayOfWeekText}}</div></div><div class=time-container v-for="[time, bangumis] of Object.entries(t.bangumis)":key=time><div class=time><icon type=mdi icon=clock-fast></icon>{{time}}</div><a class=bangumi-item v-for="b of bangumis":key=b.url :class="{delay: b.delay}":href=b.url target=_blank><div class=cover-container><dpi-img :size=72 :src=b.squareCoverUrl></dpi-img></div><div class=title>{{b.title}}</div><div class=ep-title>{{b.epTitle}}</div></a></div></div></div>`;i.applyStyleFromText(`.simple-home .bangumi-timeline{display:flex;align-items:flex-start;overflow:auto;scrollbar-width:none!important;scroll-behavior:smooth;scroll-snap-type:x mandatory;--column-count:3;--column-width:250px;--column-gap:24px;width:calc(var(--column-count) * (var(--column-width) + var(--column-gap)) - .5 * var(--column-gap))}.simple-home .bangumi-timeline::-webkit-scrollbar{height:0!important;width:0!important}.simple-home .bangumi-timeline .timeline-day{scroll-snap-align:start;width:var(--column-width);max-height:700px;overflow:auto;flex:0 0 auto;padding-bottom:16px;scrollbar-width:none!important}.simple-home .bangumi-timeline .timeline-day::-webkit-scrollbar{height:0!important;width:0!important}.simple-home .bangumi-timeline .timeline-day .date-container{display:grid;grid-template:"icon date" 1fr "icon dow" 1fr/auto 1fr;grid-column-gap:8px;column-gap:8px;height:48px;position:sticky;top:0;z-index:1;background-color:#f4f4f4}body.dark .simple-home .bangumi-timeline .timeline-day .date-container{background-color:#161616}.simple-home .bangumi-timeline .timeline-day .date-container .icon{grid-area:icon;justify-self:center;align-self:center;background-image:url(//s1.hdslb.com/bfs/static/bangumi-timeline/asserts/icons.png);background-size:247px 663px;width:38px;height:36px;background-position-x:-146px;filter:brightness(.5)}.simple-home .bangumi-timeline .timeline-day .date-container .icon.day-of-week-1{background-position-y:-36px}.simple-home .bangumi-timeline .timeline-day .date-container .icon.day-of-week-2{background-position-y:-108px}.simple-home .bangumi-timeline .timeline-day .date-container .icon.day-of-week-3{background-position-y:-180px}.simple-home .bangumi-timeline .timeline-day .date-container .icon.day-of-week-4{background-position-y:-252px}.simple-home .bangumi-timeline .timeline-day .date-container .icon.day-of-week-5{background-position-y:-324px}.simple-home .bangumi-timeline .timeline-day .date-container .icon.day-of-week-6{background-position-y:-396px}.simple-home .bangumi-timeline .timeline-day .date-container .icon.day-of-week-7{background-position-y:-468px}.simple-home .bangumi-timeline .timeline-day .date-container .date{grid-area:date;align-self:end;opacity:.75}.simple-home .bangumi-timeline .timeline-day .date-container .day-of-week{grid-area:dow;align-self:start;font-weight:700;font-size:15px;opacity:.75}.simple-home .bangumi-timeline .timeline-day .date-container.today .icon{width:50px;height:48px;background-position-x:-56px;filter:none}.simple-home .bangumi-timeline .timeline-day .date-container.today .date{font-size:14px;opacity:1}.simple-home .bangumi-timeline .timeline-day .date-container.today .day-of-week{font-size:18px;opacity:1}body.dark .simple-home .bangumi-timeline .timeline-day .date-container .icon{filter:brightness(.8)}body.dark .simple-home .bangumi-timeline .timeline-day .date-container.today .icon{filter:invert(1)}.simple-home .bangumi-timeline .timeline-day .time-container{margin-top:18px}.simple-home .bangumi-timeline .timeline-day .time-container>:not(:last-child){margin-bottom:8px}.simple-home .bangumi-timeline .timeline-day .time-container .time{display:flex;align-items:center;font-weight:700}.simple-home .bangumi-timeline .timeline-day .time-container .time .be-icon{margin-right:6px;font-size:18px}.simple-home .bangumi-timeline .timeline-day .time-container .bangumi-item{display:grid;height:72px;grid-template:"cover title" auto "cover ep" auto/72px 1fr;background-color:#fff;color:inherit;box-shadow:0 4px 8px 0 #0001;border-radius:8px;grid-row-gap:8px;row-gap:8px}body.dark .simple-home .bangumi-timeline .timeline-day .time-container .bangumi-item{background-color:#282828}.simple-home .bangumi-timeline .timeline-day .time-container .bangumi-item .cover-container{grid-area:cover;overflow:hidden;border-radius:8px 0 0 8px}.simple-home .bangumi-timeline .timeline-day .time-container .bangumi-item .cover-container img{width:100%;height:100%}.simple-home .bangumi-timeline .timeline-day .time-container .bangumi-item.delay{opacity:.4}.simple-home .bangumi-timeline .timeline-day .time-container .bangumi-item.delay:hover{opacity:1}.simple-home .bangumi-timeline .timeline-day .time-container .bangumi-item:hover{color:var(--theme-color)!important}.simple-home .bangumi-timeline .timeline-day .time-container .bangumi-item:hover .cover-container img{transform:scale(1.05)}.simple-home .bangumi-timeline .timeline-day .time-container .bangumi-item .title{grid-area:title;align-self:end;font-size:13px;font-weight:700;margin:0 12px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;max-height:2.6em;word-break:break-all;line-height:1.3;overflow:hidden}.simple-home .bangumi-timeline .timeline-day .time-container .bangumi-item .ep-title{grid-area:ep;align-self:start;margin:0 12px}.simple-home .bangumi-timeline .timeline-day:not(:last-child){margin-right:var(--column-gap)}`,"bangumi-timeline-style");return{export:Object.assign({template:t},{components:{Icon:()=>i.importAsync("icon.vue"),DpiImg:()=>i.importAsync("dpi-img.vue")},props:{type:{type:String,default:"global",required:false}},data(){const e={global:"https://bangumi.bilibili.com/web_api/timeline_global",chinese:"https://bangumi.bilibili.com/web_api/timeline_cn"};return{apiUrl:e[this.type]||e.global,timeline:[]}},async mounted(){try{const e=await Ajax.getJsonWithCredentials(this.apiUrl);if(e.code!==0){throw new Error(e.message)}const i=e.result.map(e=>{return{date:e.date,dayOfWeek:e.day_of_week,dayOfWeekText:"星期"+[,"一","二","三","四","五","六","日"][e.day_of_week],isToday:Boolean(e.is_today),bangumis:_.groupBy(e.seasons.map(e=>{return{coverUrl:e.cover.replace("http:","https:"),squareCoverUrl:e.square_cover.replace("http:","https:"),time:e.pub_time,timestamp:e.pub_ts*1e3,url:e.url,follow:Boolean(e.follow),epTitle:e.pub_index||e.delay_reason+" "+e.delay_index,title:e.title,delay:Boolean(e.delay),published:Boolean(e.is_published)}}),e=>e.time)}});this.timeline=i;await this.$nextTick();const t=this.$el;const a=getComputedStyle(t);const n=parseInt(a.getPropertyValue("--column-width").match(/(.+)px/)[1]);const o=parseInt(a.getPropertyValue("--column-gap").match(/(.+)px/)[1]);t.scrollLeft=5*(n+o)}catch(e){logError(e);this.$emit("error")}finally{this.$emit("load")}}})}}})(); |