#45: Add list of malformed article
This commit is contained in:
parent
374ee97baa
commit
6676218ee7
4 changed files with 95 additions and 1 deletions
|
@ -10,7 +10,8 @@ which is compiled from data on [PCGamingWiki](https://www.pcgamingwiki.com/wiki/
|
||||||
along with accessing the Steam API for game installation directory names.
|
along with accessing the Steam API for game installation directory names.
|
||||||
If you find any data that is missing or incorrect, please contribute to the wiki,
|
If you find any data that is missing or incorrect, please contribute to the wiki,
|
||||||
and such changes will be incorporated into the primary manifest periodically.
|
and such changes will be incorporated into the primary manifest periodically.
|
||||||
There is also a list of [games without any info on what to back up](data/missing.md).
|
There is also a list of [games without any info on what to back up](data/missing.md),
|
||||||
|
as well as [articles with wikitext that failed to parse](data/wiki-malformed.yaml).
|
||||||
|
|
||||||
Game developers may include a secondary manifest (named `.ludusavi.yaml`) with their games,
|
Game developers may include a secondary manifest (named `.ludusavi.yaml`) with their games,
|
||||||
so that backup tools can automatically detect and use it
|
so that backup tools can automatically detect and use it
|
||||||
|
|
72
data/wiki-malformed.md
Normal file
72
data/wiki-malformed.md
Normal file
|
@ -0,0 +1,72 @@
|
||||||
|
* [404Sight](https://www.pcgamingwiki.com/wiki/?curid=34881)
|
||||||
|
* [Airship Dragoon](https://www.pcgamingwiki.com/wiki/?curid=49715)
|
||||||
|
* [Alien: Isolation](https://www.pcgamingwiki.com/wiki/?curid=17716)
|
||||||
|
* [Aliens versus Predator 2](https://www.pcgamingwiki.com/wiki/?curid=754)
|
||||||
|
* [Arena Wars](https://www.pcgamingwiki.com/wiki/?curid=192432)
|
||||||
|
* [Armed Forces Corp.](https://www.pcgamingwiki.com/wiki/?curid=186354)
|
||||||
|
* [Bejeweled 2](https://www.pcgamingwiki.com/wiki/?curid=12258)
|
||||||
|
* [Blind Men](https://www.pcgamingwiki.com/wiki/?curid=65074)
|
||||||
|
* [Boneworks](https://www.pcgamingwiki.com/wiki/?curid=129124)
|
||||||
|
* [Call of Duty: Modern Warfare 3](https://www.pcgamingwiki.com/wiki/?curid=30)
|
||||||
|
* [Call of Juarez: The Cartel](https://www.pcgamingwiki.com/wiki/?curid=7404)
|
||||||
|
* [CastleMiner Z](https://www.pcgamingwiki.com/wiki/?curid=50695)
|
||||||
|
* [Citizen Sleeper](https://www.pcgamingwiki.com/wiki/?curid=171592)
|
||||||
|
* [Counter-Strike Online 2](https://www.pcgamingwiki.com/wiki/?curid=162639)
|
||||||
|
* [Creepy Castle](https://www.pcgamingwiki.com/wiki/?curid=39349)
|
||||||
|
* [Dark Deception](https://www.pcgamingwiki.com/wiki/?curid=111922)
|
||||||
|
* [Darksiders II](https://www.pcgamingwiki.com/wiki/?curid=3416)
|
||||||
|
* [Dishonored](https://www.pcgamingwiki.com/wiki/?curid=3440)
|
||||||
|
* [Donald Duck: Goin' Quackers](https://www.pcgamingwiki.com/wiki/?curid=80156)
|
||||||
|
* [Duck Season](https://www.pcgamingwiki.com/wiki/?curid=69641)
|
||||||
|
* [Dungeon Keeper](https://www.pcgamingwiki.com/wiki/?curid=7396)
|
||||||
|
* [Escape from Tarkov](https://www.pcgamingwiki.com/wiki/?curid=75944)
|
||||||
|
* [Escape from Tarkov: Arena](https://www.pcgamingwiki.com/wiki/?curid=191894)
|
||||||
|
* [Fallout Tactics: Brotherhood of Steel](https://www.pcgamingwiki.com/wiki/?curid=3390)
|
||||||
|
* [Fault - Milestone Two](https://www.pcgamingwiki.com/wiki/?curid=33640)
|
||||||
|
* [Fe](https://www.pcgamingwiki.com/wiki/?curid=81305)
|
||||||
|
* [Halo Infinite](https://www.pcgamingwiki.com/wiki/?curid=138382)
|
||||||
|
* [IL-2 Sturmovik: 1946](https://www.pcgamingwiki.com/wiki/?curid=3563)
|
||||||
|
* [Immortals Fenyx Rising](https://www.pcgamingwiki.com/wiki/?curid=138457)
|
||||||
|
* [Just Cause 3](https://www.pcgamingwiki.com/wiki/?curid=20905)
|
||||||
|
* [Left Behind 4: World at War](https://www.pcgamingwiki.com/wiki/?curid=106677)
|
||||||
|
* [Left Behind: Eternal Forces](https://www.pcgamingwiki.com/wiki/?curid=81424)
|
||||||
|
* [Left Behind: Tribulation Forces](https://www.pcgamingwiki.com/wiki/?curid=106673)
|
||||||
|
* [Lego DC Super-Villains](https://www.pcgamingwiki.com/wiki/?curid=96133)
|
||||||
|
* [Lego Island](https://www.pcgamingwiki.com/wiki/?curid=6644)
|
||||||
|
* [Limit Theory](https://www.pcgamingwiki.com/wiki/?curid=23047)
|
||||||
|
* [Microsoft Flight Simulator 98](https://www.pcgamingwiki.com/wiki/?curid=183021)
|
||||||
|
* [Moonlighter](https://www.pcgamingwiki.com/wiki/?curid=61691)
|
||||||
|
* [Mysteria: Occult Shadows](https://www.pcgamingwiki.com/wiki/?curid=107356)
|
||||||
|
* [Nadia Was Here](https://www.pcgamingwiki.com/wiki/?curid=61784)
|
||||||
|
* [NASCAR The Game: 2013](https://www.pcgamingwiki.com/wiki/?curid=8952)
|
||||||
|
* [Need for Speed Unbound](https://www.pcgamingwiki.com/wiki/?curid=182372)
|
||||||
|
* [NeoTokyo](https://www.pcgamingwiki.com/wiki/?curid=18357)
|
||||||
|
* [Police Simulator Patrol Officers](https://www.pcgamingwiki.com/wiki/?curid=170657)
|
||||||
|
* [Portal](https://www.pcgamingwiki.com/wiki/?curid=228)
|
||||||
|
* [Project Nomads](https://www.pcgamingwiki.com/wiki/?curid=160544)
|
||||||
|
* [Real Pool 3D - Poolians](https://www.pcgamingwiki.com/wiki/?curid=78144)
|
||||||
|
* [Rexaura](https://www.pcgamingwiki.com/wiki/?curid=179569)
|
||||||
|
* [Rising Angels: Reborn](https://www.pcgamingwiki.com/wiki/?curid=33668)
|
||||||
|
* [Runefall](https://www.pcgamingwiki.com/wiki/?curid=95119)
|
||||||
|
* [Samurai Warriors 5](https://www.pcgamingwiki.com/wiki/?curid=166726)
|
||||||
|
* [Shock Troopers](https://www.pcgamingwiki.com/wiki/?curid=43011)
|
||||||
|
* [SimCity 2000](https://www.pcgamingwiki.com/wiki/?curid=2901)
|
||||||
|
* [Spelp](https://www.pcgamingwiki.com/wiki/?curid=194304)
|
||||||
|
* [Spooky's Jump Scare Mansion: HD Renovation](https://www.pcgamingwiki.com/wiki/?curid=57683)
|
||||||
|
* [Star Control: Origins](https://www.pcgamingwiki.com/wiki/?curid=74714)
|
||||||
|
* [Street Legal](https://www.pcgamingwiki.com/wiki/?curid=76838)
|
||||||
|
* [SWAT 3: Close Quarters Battle](https://www.pcgamingwiki.com/wiki/?curid=13256)
|
||||||
|
* [SweatShop](https://www.pcgamingwiki.com/wiki/?curid=42133)
|
||||||
|
* [Ten Dates](https://www.pcgamingwiki.com/wiki/?curid=185139)
|
||||||
|
* [Terrorist Takedown 2](https://www.pcgamingwiki.com/wiki/?curid=30659)
|
||||||
|
* [That's not my neighbor](https://www.pcgamingwiki.com/wiki/?curid=194559)
|
||||||
|
* [The First Templar](https://www.pcgamingwiki.com/wiki/?curid=40982)
|
||||||
|
* [The Glitch Fairy](https://www.pcgamingwiki.com/wiki/?curid=192157)
|
||||||
|
* [The Sims 2](https://www.pcgamingwiki.com/wiki/?curid=281)
|
||||||
|
* [The Temple of Elemental Evil](https://www.pcgamingwiki.com/wiki/?curid=14272)
|
||||||
|
* [Tom Clancy's Ghost Recon](https://www.pcgamingwiki.com/wiki/?curid=5581)
|
||||||
|
* [Transformers: Revenge of the Fallen](https://www.pcgamingwiki.com/wiki/?curid=64163)
|
||||||
|
* [Trinium Wars](https://www.pcgamingwiki.com/wiki/?curid=34904)
|
||||||
|
* [Turbo Dismount](https://www.pcgamingwiki.com/wiki/?curid=37547)
|
||||||
|
* [X-COM: Terror from the Deep](https://www.pcgamingwiki.com/wiki/?curid=17606)
|
||||||
|
* [Zone of the Enders: The 2nd Runner MARS](https://www.pcgamingwiki.com/wiki/?curid=90671)
|
|
@ -137,6 +137,7 @@ async fn main() {
|
||||||
steam_cache.save();
|
steam_cache.save();
|
||||||
manifest.save();
|
manifest.save();
|
||||||
missing::save_missing_games(&wiki_cache, &manifest, &manifest_override);
|
missing::save_missing_games(&wiki_cache, &manifest, &manifest_override);
|
||||||
|
wiki::save_malformed_list(&wiki_cache);
|
||||||
}
|
}
|
||||||
|
|
||||||
if !success {
|
if !success {
|
||||||
|
|
20
src/wiki.rs
20
src/wiki.rs
|
@ -1,5 +1,6 @@
|
||||||
use std::collections::{BTreeMap, BTreeSet, HashMap, HashSet};
|
use std::collections::{BTreeMap, BTreeSet, HashMap, HashSet};
|
||||||
|
|
||||||
|
use itertools::Itertools;
|
||||||
use once_cell::sync::Lazy;
|
use once_cell::sync::Lazy;
|
||||||
use regex::Regex;
|
use regex::Regex;
|
||||||
use wikitext_parser::{Attribute, TextPiece};
|
use wikitext_parser::{Attribute, TextPiece};
|
||||||
|
@ -1110,6 +1111,25 @@ impl ResourceFile for WikiMetaCache {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn save_malformed_list(wiki_cache: &WikiCache) {
|
||||||
|
let lines: Vec<String> = wiki_cache
|
||||||
|
.0
|
||||||
|
.iter()
|
||||||
|
.sorted_by(|(k1, _), (k2, _)| k1.to_lowercase().cmp(&k2.to_lowercase()))
|
||||||
|
.filter(|(_, v)| v.malformed)
|
||||||
|
.map(|(k, v)| format!("* [{}](https://www.pcgamingwiki.com/wiki/?curid={})", k, v.page_id))
|
||||||
|
.collect();
|
||||||
|
|
||||||
|
_ = std::fs::write(
|
||||||
|
format!("{}/data/wiki-malformed.md", crate::REPO),
|
||||||
|
if lines.is_empty() {
|
||||||
|
"* No errors found".to_string()
|
||||||
|
} else {
|
||||||
|
lines.join("\n") + "\n"
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests {
|
mod tests {
|
||||||
use super::*;
|
use super::*;
|
||||||
|
|
Reference in a new issue