Use tab for indantaion
This commit is contained in:
		
							parent
							
								
									26d0d13173
								
							
						
					
					
						commit
						76e83a9c0e
					
				
					 1 changed files with 90 additions and 90 deletions
				
			
		|  | @ -28,17 +28,17 @@ require('fetch'); | |||
| 
 | ||||
| // ↓ NodeList、HTMLCollectionで forEach を使えるようにする
 | ||||
| if (NodeList.prototype.forEach === undefined) { | ||||
|   NodeList.prototype.forEach = Array.prototype.forEach; | ||||
| 	NodeList.prototype.forEach = Array.prototype.forEach; | ||||
| } | ||||
| if (HTMLCollection.prototype.forEach === undefined) { | ||||
|   HTMLCollection.prototype.forEach = Array.prototype.forEach; | ||||
| 	HTMLCollection.prototype.forEach = Array.prototype.forEach; | ||||
| } | ||||
| 
 | ||||
| // ↓ iOSでプライベートモードだとlocalStorageが使えないので既存のメソッドを上書きする
 | ||||
| try { | ||||
|   localStorage.setItem('kyoppie', 'yuppie'); | ||||
| 	localStorage.setItem('kyoppie', 'yuppie'); | ||||
| } catch (e) { | ||||
|   Storage.prototype.setItem = () => { }; // noop
 | ||||
| 	Storage.prototype.setItem = () => { }; // noop
 | ||||
| } | ||||
| 
 | ||||
| // MAIN PROCESS
 | ||||
|  | @ -52,118 +52,118 @@ checkForUpdate(); | |||
| const i = (document.cookie.match(/i=(\w+)/) || [null, null])[1]; | ||||
| 
 | ||||
| if (i != null) { | ||||
|   log("ME: " + i); | ||||
| 	log("ME: " + i); | ||||
| } | ||||
| 
 | ||||
| // ユーザーをフェッチしてコールバックする
 | ||||
| module.exports = callback => { | ||||
| 	// Get cached account data
 | ||||
|   let cachedMe = JSON.parse(localStorage.getItem('me')); | ||||
| 	let cachedMe = JSON.parse(localStorage.getItem('me')); | ||||
| 
 | ||||
|   if (cachedMe != null && cachedMe.data != null && cachedMe.data.cache) { | ||||
|     fetched(cachedMe); | ||||
| 	if (cachedMe != null && cachedMe.data != null && cachedMe.data.cache) { | ||||
| 		fetched(cachedMe); | ||||
| 
 | ||||
| 		// 後から新鮮なデータをフェッチ
 | ||||
|     fetchme(i, true, freshData => { | ||||
|       Object.assign(cachedMe, freshData); | ||||
|       cachedMe.trigger('updated'); | ||||
|     }); | ||||
|   } else { | ||||
| 		fetchme(i, true, freshData => { | ||||
| 			Object.assign(cachedMe, freshData); | ||||
| 			cachedMe.trigger('updated'); | ||||
| 		}); | ||||
| 	} else { | ||||
| 		// キャッシュ無効なのにキャッシュが残ってたら掃除
 | ||||
|     if (cachedMe != null) { | ||||
|       localStorage.removeItem('me'); | ||||
|     } | ||||
|     fetchme(i, false, fetched); | ||||
|   } | ||||
| 		if (cachedMe != null) { | ||||
| 			localStorage.removeItem('me'); | ||||
| 		} | ||||
| 		fetchme(i, false, fetched); | ||||
| 	} | ||||
| 
 | ||||
|   function fetched(me) { | ||||
|     if (me != null) { | ||||
|       riot.observable(me); | ||||
|       if (me.data.cache) { | ||||
|         localStorage.setItem('me', JSON.stringify(me)); | ||||
|         me.on('updated', () => { | ||||
| 	function fetched(me) { | ||||
| 		if (me != null) { | ||||
| 			riot.observable(me); | ||||
| 			if (me.data.cache) { | ||||
| 				localStorage.setItem('me', JSON.stringify(me)); | ||||
| 				me.on('updated', () => { | ||||
| 					// キャッシュ更新
 | ||||
|           localStorage.setItem('me', JSON.stringify(me)); | ||||
|         }); | ||||
|       } | ||||
|       log("Fetched! Hello " + me.username + "."); | ||||
|     } | ||||
|     mixins(me); | ||||
|     const init = document.getElementById('init'); | ||||
|     init.parentNode.removeChild(init); | ||||
|     const app = document.createElement('div'); | ||||
|     app.setAttribute('id', 'app'); | ||||
|     document.body.appendChild(app); | ||||
|     try { | ||||
|       callback(me); | ||||
|     } catch (e) { | ||||
|       panic(e); | ||||
|     } | ||||
|   } | ||||
| 					localStorage.setItem('me', JSON.stringify(me)); | ||||
| 				}); | ||||
| 			} | ||||
| 			log("Fetched! Hello " + me.username + "."); | ||||
| 		} | ||||
| 		mixins(me); | ||||
| 		const init = document.getElementById('init'); | ||||
| 		init.parentNode.removeChild(init); | ||||
| 		const app = document.createElement('div'); | ||||
| 		app.setAttribute('id', 'app'); | ||||
| 		document.body.appendChild(app); | ||||
| 		try { | ||||
| 			callback(me); | ||||
| 		} catch (e) { | ||||
| 			panic(e); | ||||
| 		} | ||||
| 	} | ||||
| }; | ||||
| 
 | ||||
| // ユーザーをフェッチしてコールバックする
 | ||||
| function fetchme(token, silent, cb) { | ||||
|   let me = null; | ||||
| 	let me = null; | ||||
| 
 | ||||
| 	// Return when not signed in
 | ||||
|   if (token == null) { | ||||
|     return done(); | ||||
|   } | ||||
| 	if (token == null) { | ||||
| 		return done(); | ||||
| 	} | ||||
| 
 | ||||
| 	// Fetch user
 | ||||
|   fetch(CONFIG.api.url + "/i", { | ||||
|     method: 'POST', | ||||
|     headers: { | ||||
|       'Content-Type': 'application/x-www-form-urlencoded; charset=utf-8' | ||||
|     }, | ||||
|     body: "i=" + token | ||||
|   }).then(res => { | ||||
| 	fetch(CONFIG.api.url + "/i", { | ||||
| 		method: 'POST', | ||||
| 		headers: { | ||||
| 			'Content-Type': 'application/x-www-form-urlencoded; charset=utf-8' | ||||
| 		}, | ||||
| 		body: "i=" + token | ||||
| 	}).then(res => { | ||||
| 		// When failed to authenticate user
 | ||||
|     if (res.status !== 200) { | ||||
|       signout(); | ||||
|     } | ||||
|     res.json().then(i => { | ||||
|       me = i; | ||||
|       me.token = token; | ||||
| 		if (res.status !== 200) { | ||||
| 			signout(); | ||||
| 		} | ||||
| 		res.json().then(i => { | ||||
| 			me = i; | ||||
| 			me.token = token; | ||||
| 
 | ||||
| 			// initialize it if user data is empty
 | ||||
|       if (me.data != null) { | ||||
|         done(); | ||||
|       } else { | ||||
|         init(); | ||||
|       } | ||||
|     }); | ||||
|   }).catch(() => { | ||||
|     if (!silent) { | ||||
|       const info = document.body.appendChild(document.createElement('mk-core-error')); | ||||
|       riot.mount(info, { | ||||
|         retry: () => { | ||||
|           fetchme(token, false, cb); | ||||
|         } | ||||
|       }); | ||||
| 			if (me.data != null) { | ||||
| 				done(); | ||||
| 			} else { | ||||
| 				init(); | ||||
| 			} | ||||
| 		}); | ||||
| 	}).catch(() => { | ||||
| 		if (!silent) { | ||||
| 			const info = document.body.appendChild(document.createElement('mk-core-error')); | ||||
| 			riot.mount(info, { | ||||
| 				retry: () => { | ||||
| 					fetchme(token, false, cb); | ||||
| 				} | ||||
| 			}); | ||||
| 		} | ||||
|   }); | ||||
| 	}); | ||||
| 
 | ||||
|   function done() { | ||||
|     if (cb != null) { | ||||
|     	cb(me); | ||||
|     } | ||||
|   } | ||||
| 	function done() { | ||||
| 		if (cb != null) { | ||||
| 			cb(me); | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
|   function init() { | ||||
|     var data, this$ = this; | ||||
|     data = generateDefaultUserdata(); | ||||
|     api(token, 'i/appdata/set', { | ||||
|       data: JSON.stringify(data) | ||||
|     }).then(() => { | ||||
|       me.data = data; | ||||
|       done(); | ||||
|     }); | ||||
|   } | ||||
| 	function init() { | ||||
| 		var data, this$ = this; | ||||
| 		data = generateDefaultUserdata(); | ||||
| 		api(token, 'i/appdata/set', { | ||||
| 			data: JSON.stringify(data) | ||||
| 		}).then(() => { | ||||
| 			me.data = data; | ||||
| 			done(); | ||||
| 		}); | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| function panic(e) { | ||||
|   console.error(e); | ||||
|   document.body.innerHTML = '<div id="error"><p>致命的な問題が発生しました。</p></div>'; | ||||
| 	console.error(e); | ||||
| 	document.body.innerHTML = '<div id="error"><p>致命的な問題が発生しました。</p></div>'; | ||||
| } | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue