Rework FreeTube subscription import
This commit is contained in:
		
							parent
							
								
									9872f175d3
								
							
						
					
					
						commit
						d19615121d
					
				|  | @ -118,6 +118,8 @@ export default Vue.extend({ | ||||||
|           importingOldFormat = true |           importingOldFormat = true | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|  |         const primaryProfile = JSON.parse(JSON.stringify(this.profileList[0])) | ||||||
|  | 
 | ||||||
|         textDecode.forEach((profileData) => { |         textDecode.forEach((profileData) => { | ||||||
|           // We would technically already be done by the time the data is parsed,
 |           // We would technically already be done by the time the data is parsed,
 | ||||||
|           // however we want to limit the possibility of malicious data being sent
 |           // however we want to limit the possibility of malicious data being sent
 | ||||||
|  | @ -149,18 +151,46 @@ export default Vue.extend({ | ||||||
|               message: message |               message: message | ||||||
|             }) |             }) | ||||||
|           } else { |           } else { | ||||||
|             if (importingOldFormat && profileObject.name === 'All Channels') { |             if (profileObject.name === 'All Channels' || profileObject._id === 'allChannels') { | ||||||
|               const primaryProfile = JSON.parse(JSON.stringify(this.profileList[0])) |  | ||||||
|               // filter out subscriptions that already exist before concatenating
 |  | ||||||
|               profileObject.subscriptions = profileObject.subscriptions.filter(newSub => { |  | ||||||
|                 const subExists = primaryProfile.subscriptions.find(existingSub => existingSub.id === newSub.id) |  | ||||||
|                 return !subExists // return false if sub already exists in default profile
 |  | ||||||
|               }) |  | ||||||
|               primaryProfile.subscriptions = primaryProfile.subscriptions.concat(profileObject.subscriptions) |               primaryProfile.subscriptions = primaryProfile.subscriptions.concat(profileObject.subscriptions) | ||||||
|  |               primaryProfile.subscriptions = primaryProfile.subscriptions.filter((sub, index) => { | ||||||
|  |                 const profileIndex = primaryProfile.subscriptions.findIndex((x) => { | ||||||
|  |                   return x.name === sub.name | ||||||
|  |                 }) | ||||||
|  | 
 | ||||||
|  |                 return profileIndex === index | ||||||
|  |               }) | ||||||
|               this.updateProfile(primaryProfile) |               this.updateProfile(primaryProfile) | ||||||
|  |             } else { | ||||||
|  |               const existingProfileIndex = this.profileList.findIndex((profile) => { | ||||||
|  |                 return profile.name.includes(profileObject.name) | ||||||
|  |               }) | ||||||
|  | 
 | ||||||
|  |               if (existingProfileIndex !== -1) { | ||||||
|  |                 const existingProfile = JSON.parse(JSON.stringify(this.profileList[existingProfileIndex])) | ||||||
|  |                 existingProfile.subscriptions = existingProfile.subscriptions.concat(profileObject.subscriptions) | ||||||
|  |                 existingProfile.subscriptions = existingProfile.subscriptions.filter((sub, index) => { | ||||||
|  |                   const profileIndex = existingProfile.subscriptions.findIndex((x) => { | ||||||
|  |                     return x.name === sub.name | ||||||
|  |                   }) | ||||||
|  | 
 | ||||||
|  |                   return profileIndex === index | ||||||
|  |                 }) | ||||||
|  |                 this.updateProfile(existingProfile) | ||||||
|               } else { |               } else { | ||||||
|                 this.updateProfile(profileObject) |                 this.updateProfile(profileObject) | ||||||
|               } |               } | ||||||
|  | 
 | ||||||
|  |               primaryProfile.subscriptions = primaryProfile.subscriptions.concat(profileObject.subscriptions) | ||||||
|  |               primaryProfile.subscriptions = primaryProfile.subscriptions.filter((sub, index) => { | ||||||
|  |                 const profileIndex = primaryProfile.subscriptions.findIndex((x) => { | ||||||
|  |                   return x.name === sub.name | ||||||
|  |                 }) | ||||||
|  | 
 | ||||||
|  |                 return profileIndex === index | ||||||
|  |               }) | ||||||
|  |               this.updateProfile(primaryProfile) | ||||||
|  |             } | ||||||
|           } |           } | ||||||
|         }) |         }) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue