Compare commits

...

5 commits

Author SHA1 Message Date
71817baad0 去除听歌打卡功能 2025-06-17 09:13:43 +08:00
f6735c9c26
Update README.md
Some checks failed
Release / release (macos-latest) (push) Has been cancelled
Release / release (ubuntu-22.04) (push) Has been cancelled
Release / release (windows-latest) (push) Has been cancelled
更换demo的url
2025-06-15 22:39:46 +08:00
708a1a8eb8 去除签到功能、邮箱和登录入口 2025-06-14 12:36:22 +08:00
runnableAir
70ab357799
fix: 随机模式下当前播放歌曲于列表中的位置出现错误和不同步的情况 (#2378)
* fix(Player.js): 随机模式下列表初始化时当前歌曲的下标异常

异常情况:假设歌曲A其在歌单中的位置为10,随机模式下双击该歌曲后,this.current != 10
原因:随机模式下,通过 indexOf 计算 current 时,调用的数组与真实的列表数组不一致

* fix(Player.js): 随机模式切换时未同步当前歌曲下标

* fix: 随机播放顺序与实际列表不一致

使用 filter 不保证返回的数组的元素顺序与传入的id 顺序对应
2025-05-30 19:59:52 +08:00
李洋
c7e69158d2
Update package.json (#2347)
将版本号从0.4.8改成了0.4.9(有点强迫症)
2025-03-03 19:08:59 +08:00
7 changed files with 13 additions and 17 deletions

View file

@ -8,7 +8,7 @@
<p align="center">
高颜值的第三方网易云播放器
<br />
<a href="https://music.qier222.com" target="blank"><strong>🌎 访问DEMO</strong></a>&nbsp;&nbsp;|&nbsp;&nbsp;
<a href="https://music.ineko.cc" target="blank"><strong>🌎 访问DEMO</strong></a>&nbsp;&nbsp;|&nbsp;&nbsp;
<a href="#%EF%B8%8F-安装" target="blank"><strong>📦️ 下载安装包</strong></a>&nbsp;&nbsp;|&nbsp;&nbsp;
<a href="https://t.me/yesplaymusic" target="blank"><strong>💬 加入交流群</strong></a>
<br />
@ -16,7 +16,7 @@
</p>
</p>
[![Library][library-screenshot]](https://music.qier222.com)
[![Library][library-screenshot]](https://music.ineko.cc)
## 全新版本

View file

@ -1,6 +1,6 @@
{
"name": "yesplaymusic",
"version": "0.4.8",
"version": "0.4.9",
"private": true,
"description": "A third party music player for Netease Music",
"author": "qier222<qier222@outlook.com>",

View file

@ -7,7 +7,6 @@ import i18n from '@/locale';
import '@/assets/icons';
import '@/utils/filters';
import './registerServiceWorker';
import { dailyTask } from '@/utils/common';
import '@/assets/css/global.scss';
import NProgress from 'nprogress';
import '@/assets/css/nprogress.css';
@ -38,7 +37,6 @@ Vue.use(
Vue.config.productionTip = false;
NProgress.configure({ showSpinner: false, trickleSpeed: 100 });
dailyTask();
new Vue({
i18n,

View file

@ -3,7 +3,7 @@ import { getArtist } from '@/api/artist';
import { trackScrobble, trackUpdateNowPlaying } from '@/api/lastfm';
import { fmTrash, personalFM } from '@/api/others';
import { getPlaylistDetail, intelligencePlaylist } from '@/api/playlist';
import { getLyric, getMP3, getTrackDetail, scrobble } from '@/api/track';
import { getLyric, getMP3, getTrackDetail } from '@/api/track';
import store from '@/store';
import { isAccountLoggedIn } from '@/utils/auth';
import { cacheTrackSource, getTrackSource } from '@/utils/db';
@ -130,6 +130,8 @@ export default class {
if (shuffle) {
this._shuffleTheList();
}
// 同步当前歌曲在列表中的下标
this.current = this.list.indexOf(this.currentTrackID);
}
get reversed() {
return this._reversed;
@ -307,11 +309,6 @@ export default class {
);
const trackDuration = ~~(track.dt / 1000);
time = completed ? trackDuration : ~~time;
scrobble({
id: track.id,
sourceid: this.playlistSource.id,
time,
});
if (
store.state.lastfm.key !== undefined &&
(time >= trackDuration / 2 || time >= 240)
@ -892,7 +889,7 @@ export default class {
if (autoPlayTrackID === 'first') {
this._replaceCurrentTrack(this.list[0]);
} else {
this.current = trackIDs.indexOf(autoPlayTrackID);
this.current = this.list.indexOf(autoPlayTrackID);
this._replaceCurrentTrack(autoPlayTrackID);
}
}

View file

@ -215,7 +215,7 @@
<script>
import { mapActions, mapMutations, mapState } from 'vuex';
import { randomNum, dailyTask } from '@/utils/common';
import { randomNum } from '@/utils/common';
import { isAccountLoggedIn } from '@/utils/auth';
import { uploadSong } from '@/api/user';
import { getLyric } from '@/api/track';
@ -310,7 +310,6 @@ export default {
activated() {
this.$parent.$refs.scrollbar.restorePosition();
this.loadData();
dailyTask();
},
methods: {
...mapActions(['showToast']),

View file

@ -90,14 +90,14 @@
</button>
</div>
<div class="other-login">
<a v-show="mode !== 'email'" @click="changeMode('email')">{{
<!-- <a v-show="mode !== 'email'" @click="changeMode('email')">{{
$t('login.loginWithEmail')
}}</a>
<span v-show="mode === 'qrCode'">|</span>
<a v-show="mode !== 'phone'" @click="changeMode('phone')">{{
$t('login.loginWithPhone')
}}</a>
<span v-show="mode !== 'qrCode'">|</span>
<span v-show="mode !== 'qrCode'">|</span> -->
<a v-show="mode !== 'qrCode'" @click="changeMode('qrCode')">
二维码登录
</a>

View file

@ -57,7 +57,9 @@ export default {
this.player.current + 1,
this.player.current + 100
);
return this.tracks.filter(t => trackIDs.includes(t.id));
return trackIDs
.map(tid => this.tracks.find(t => t.id === tid))
.filter(t => t);
},
playNextList() {
return this.player.playNextList;