Update example
							parent
							
								
									c9ce6faed4
								
							
						
					
					
						commit
						c153eca68c
					
				| 
						 | 
					@ -28,16 +28,12 @@ import {
 | 
				
			||||||
  LatestSearchQuery,
 | 
					  LatestSearchQuery,
 | 
				
			||||||
  Game,
 | 
					  Game,
 | 
				
			||||||
  searchHandiwork,
 | 
					  searchHandiwork,
 | 
				
			||||||
  HandiworkSearchQuery,
 | 
					  HandiworkSearchQuery
 | 
				
			||||||
  Asset,
 | 
					 | 
				
			||||||
  getHandiworkFromURL
 | 
					 | 
				
			||||||
} from "./index";
 | 
					} from "./index";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Configure the .env reader
 | 
					// Configure the .env reader
 | 
				
			||||||
dotenv.config();
 | 
					dotenv.config();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
main();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * Ask the user to enter the OTP code
 | 
					 * Ask the user to enter the OTP code
 | 
				
			||||||
 * necessary to authenticate on the server.
 | 
					 * necessary to authenticate on the server.
 | 
				
			||||||
| 
						 | 
					@ -56,39 +52,52 @@ async function insert2faCode(): Promise<number> {
 | 
				
			||||||
  return answers.code as number;
 | 
					  return answers.code as number;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
async function main() {
 | 
					/**
 | 
				
			||||||
  // Local variables
 | 
					 * Authenticate on the platform.
 | 
				
			||||||
  const gameList = ["City of broken dreamers", "Seeds of chaos", "MIST"];
 | 
					 */
 | 
				
			||||||
 | 
					async function authenticate(): Promise<boolean> {
 | 
				
			||||||
  // Log in the platform
 | 
					  // Log in the platform
 | 
				
			||||||
  console.log("Authenticating...");
 | 
					  console.log("Authenticating...");
 | 
				
			||||||
  const result = await login(process.env.F95_USERNAME, process.env.F95_PASSWORD, insert2faCode);
 | 
					  const result = await login(process.env.F95_USERNAME, process.env.F95_PASSWORD, insert2faCode);
 | 
				
			||||||
  console.log(`Authentication result: ${result.message}\n`);
 | 
					  console.log(`Authentication result: ${result.message}\n`);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // Manage failed login
 | 
					  return result.success;
 | 
				
			||||||
  if (!result.success) {
 | 
					 | 
				
			||||||
    console.log("Failed authentication, impossible to continue");
 | 
					 | 
				
			||||||
    return;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // Get user data
 | 
					/**
 | 
				
			||||||
 | 
					 * Fetch and show data of the current logger user.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					async function fetchUserData(): Promise<void> {
 | 
				
			||||||
  console.log("Fetching user data...");
 | 
					  console.log("Fetching user data...");
 | 
				
			||||||
  const userdata = await getUserData();
 | 
					 | 
				
			||||||
  const gameThreads = userdata.watched.filter((e) => e.forum === "Games").length;
 | 
					 | 
				
			||||||
  console.log(
 | 
					 | 
				
			||||||
    `${userdata.name} follows ${userdata.watched.length} threads of which ${gameThreads} are games\n`
 | 
					 | 
				
			||||||
  );
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // Get latest game update
 | 
					  const userdata = await getUserData();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  const gameThreads = userdata.watched.filter((e) => e.forum === "Games");
 | 
				
			||||||
 | 
					  const unread = gameThreads.filter((e) => e.unread).length;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  console.log(`User: ${userdata.name}`);
 | 
				
			||||||
 | 
					  console.log(`Threads followed: ${userdata.watched.length}`);
 | 
				
			||||||
 | 
					  console.log(`Games followed: ${gameThreads.length}`);
 | 
				
			||||||
 | 
					  console.log(`Unread game threads: ${unread}\n`);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Fetch the data of the latest `3D game` updated.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					async function fetchLatestGameInfo(): Promise<void> {
 | 
				
			||||||
  const latestQuery: LatestSearchQuery = new LatestSearchQuery();
 | 
					  const latestQuery: LatestSearchQuery = new LatestSearchQuery();
 | 
				
			||||||
  latestQuery.category = "games";
 | 
					  latestQuery.category = "games";
 | 
				
			||||||
  latestQuery.includedTags = ["3d game"];
 | 
					  latestQuery.includedTags = ["3d game"];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  const latestUpdates = await getLatestUpdates<Game>(latestQuery, 1);
 | 
					  const latestUpdates = await getLatestUpdates<Game>(latestQuery, 1);
 | 
				
			||||||
  console.log(`"${latestUpdates.shift().name}" was the last "3d game" tagged game to be updated\n`);
 | 
					  console.log(`"${latestUpdates.shift().name}" was the last "3d game" tagged game to be updated\n`);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // Get game data
 | 
					/**
 | 
				
			||||||
  for (const gamename of gameList) {
 | 
					 * Fetch data of the games given theirs names.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					async function fetchGameData(games: string[]): Promise<void> {
 | 
				
			||||||
 | 
					  for (const gamename of games) {
 | 
				
			||||||
    console.log(`Searching '${gamename}'...`);
 | 
					    console.log(`Searching '${gamename}'...`);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Prepare the query
 | 
					    // Prepare the query
 | 
				
			||||||
| 
						 | 
					@ -109,3 +118,19 @@ async function main() {
 | 
				
			||||||
    } else console.log(`No data found for '${gamename}'\n`);
 | 
					    } else console.log(`No data found for '${gamename}'\n`);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					async function main() {
 | 
				
			||||||
 | 
					  if (await authenticate()) {
 | 
				
			||||||
 | 
					    // Fetch and log user data
 | 
				
			||||||
 | 
					    await fetchUserData();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Get latest `3D GAME` game updated
 | 
				
			||||||
 | 
					    await fetchLatestGameInfo();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Get game data
 | 
				
			||||||
 | 
					    const gameList = ["City of broken dreamers", "Seeds of chaos", "MIST"];
 | 
				
			||||||
 | 
					    await fetchGameData(gameList);
 | 
				
			||||||
 | 
					  } else console.log("Failed authentication, impossible to continue");
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					main();
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue