Merge branch 'master' into charImplants
# Conflicts: # gui/characterEditor.py
This commit is contained in:
99
service/conversions/releaseDecember15.py
Normal file
99
service/conversions/releaseDecember15.py
Normal file
@@ -0,0 +1,99 @@
|
||||
"""
|
||||
Conversion pack for December 2015 release (no release name)
|
||||
"""
|
||||
|
||||
CONVERSIONS = {
|
||||
# Renamed items
|
||||
"Medium 'Gremlin' Power Core Disruptor I": "Medium Gremlin Compact Energy Neutralizer",
|
||||
"Medium Coaxial Remote Armor Repairer": "Medium Coaxial Compact Remote Armor Repairer",
|
||||
"'Distributor' Tracking Disruptor I": "'Distributor' Guidance Disruptor I",
|
||||
"Type-D Power Core Modification: Shield Flux": "Type-D Restrained Shield Flux Coil",
|
||||
"Large Coaxial Remote Armor Repairer": "Large Coaxial Compact Remote Armor Repairer",
|
||||
"Heavy 'Knave' Energy Drain": "Heavy Knave Scoped Energy Nosferatu",
|
||||
"F-392 Baker Nunn Tracking Disruptor I": "Baker Nunn Enduring Tracking Disruptor I",
|
||||
"'Ditch' Medium Energy Neutralizer I": "Medium 'Ditch' Energy Neutralizer",
|
||||
"DDO Photometry Tracking Disruptor I": "DDO Scoped Tracking Disruptor I",
|
||||
"Small S95a Remote Shield Booster": "Small S95a Scoped Remote Shield Booster",
|
||||
"Large S95a Remote Shield Booster": "Large S95a Scoped Remote Shield Booster",
|
||||
"'Abandon' Tracking Disruptor I": "C-IR Compact Guidance Disruptor I",
|
||||
"500W Infectious Power System Malfunction": "Heavy Infectious Scoped Energy Neutralizer",
|
||||
"Heavy 'Gremlin' Power Core Disruptor I": "Heavy Gremlin Compact Energy Neutralizer",
|
||||
"Medium 'Solace' Remote Armor Repairer": "Medium Solace Scoped Remote Armor Repairer",
|
||||
"Small Coaxial Remote Armor Repairer": "Small Coaxial Compact Remote Armor Repairer",
|
||||
"Basic Shield Flux Coil": "'Basic' Shield Flux Coil",
|
||||
"Large I-ax Remote Armor Repairer": "Large I-ax Enduring Remote Armor Repairer",
|
||||
"Basic Shield Power Relay": "'Basic' Shield Power Relay",
|
||||
"Capital Coaxial Remote Armor Repairer": "CONCORD Capital Remote Armor Repairer",
|
||||
"Medium 'Ghoul' Energy Siphon I": "Medium Ghoul Compact Energy Nosferatu",
|
||||
"Medium S95a Remote Shield Booster": "Medium S95a Scoped Remote Shield Booster",
|
||||
"Mark I Generator Refitting: Shield Flux": "Mark I Compact Shield Flux Coil",
|
||||
"Large 'Solace' Remote Armor Repairer": "Large Solace Scoped Remote Armor Repairer",
|
||||
"Large Asymmetric Remote Shield Booster": "Large Asymmetric Enduring Remote Shield Booster",
|
||||
"M51 Iterative Shield Regenerator": "M51 Benefactor Compact Shield Recharger",
|
||||
"Small 'Knave' Energy Drain": "Small Knave Scoped Energy Nosferatu",
|
||||
"Medium Murky Remote Shield Booster": "Medium Murky Compact Remote Shield Booster",
|
||||
"Small Murky Remote Shield Booster": "Small Murky Compact Remote Shield Booster",
|
||||
"Capital Murky Remote Shield Booster": "CONCORD Capital Remote Shield Booster",
|
||||
"'Caltrop' Small Energy Neutralizer I": "Small 'Caltrop' Energy Neutralizer",
|
||||
"Small I-ax Remote Armor Repairer": "Small I-ax Enduring Remote Armor Repairer",
|
||||
"'Vrykolakas' Heavy Nosferatu I": "Heavy 'Vrykolakas' Energy Nosferatu",
|
||||
"Heavy 'Ghoul' Energy Siphon I": "Heavy Ghoul Compact Energy Nosferatu",
|
||||
"Small Asymmetric Remote Shield Booster": "Small Asymmetric Enduring Remote Shield Booster",
|
||||
"Small 'Gremlin' Power Core Disruptor I": "Small Gremlin Compact Energy Neutralizer",
|
||||
"'Strigoi' Medium Nosferatu I": "Medium 'Strigoi' Energy Nosferatu",
|
||||
"'Upir' Small Nosferatu I": "Small 'Upir' Energy Nosferatu",
|
||||
"Balmer Series Tracking Disruptor I": "Balmer Series Compact Tracking Disruptor I",
|
||||
"Small 'Solace' Remote Armor Repairer": "Small Solace Scoped Remote Armor Repairer",
|
||||
"'Moat' Heavy Energy Neutralizer I": "Heavy 'Moat' Energy Neutralizer",
|
||||
"Small 'Ghoul' Energy Siphon I": "Small Ghoul Compact Energy Nosferatu",
|
||||
"5W Infectious Power System Malfunction": "Small Infectious Scoped Energy Neutralizer",
|
||||
"50W Infectious Power System Malfunction": "Medium Infectious Scoped Energy Neutralizer",
|
||||
"Type-D Power Core Modification: Shield Power Relay": "Type-D Restrained Shield Power Relay",
|
||||
"Micro Remote Shield Booster I": "'Micro' Remote Shield Booster",
|
||||
"Medium I-ax Remote Armor Repairer": "Medium I-ax Enduring Remote Armor Repairer",
|
||||
"Medium Asymmetric Remote Shield Booster": "Medium Asymmetric Enduring Remote Shield Booster",
|
||||
"Large Murky Remote Shield Booster": "Large Murky Compact Remote Shield Booster",
|
||||
"Medium 'Knave' Energy Drain": "Medium Knave Scoped Energy Nosferatu",
|
||||
"Mark I Generator Refitting: Shield Power Relay": "Mark I Compact Shield Power Relay",
|
||||
|
||||
# Converted items
|
||||
"Medium Unstable Power Fluctuator I": "Medium Gremlin Compact Energy Neutralizer",
|
||||
"'Brotherhood' Small Remote Armor Repairer": "'Beatnik' Small Remote Armor Repairer",
|
||||
"Beta Reactor Control: Shield Flux I": "Type-D Restrained Shield Flux Coil",
|
||||
"E500 Prototype Energy Vampire": "Heavy Knave Scoped Energy Nosferatu",
|
||||
"Heavy Rudimentary Energy Destabilizer I": "Heavy Infectious Scoped Energy Neutralizer",
|
||||
"Heavy Unstable Power Fluctuator I": "Heavy Gremlin Compact Energy Neutralizer",
|
||||
"Medium 'Arup' Remote Armor Repairer": "Medium Solace Scoped Remote Armor Repairer",
|
||||
"Alpha Reactor Shield Flux": "'Basic' Shield Flux Coil",
|
||||
"Marked Generator Refitting: Shield Flux": "'Basic' Shield Flux Coil",
|
||||
"Partial Power Plant Manager: Shield Flux": "'Basic' Shield Flux Coil",
|
||||
"Type-E Power Core Modification: Shield Flux": "'Basic' Shield Flux Coil",
|
||||
"Alpha Reactor Shield Power Relay": "'Basic' Shield Power Relay",
|
||||
"Marked Generator Refitting: Shield Power Relay": "'Basic' Shield Power Relay",
|
||||
"Partial Power Plant Manager: Shield Power Relay": "'Basic' Shield Power Relay",
|
||||
"Type-E Power Core Modification: Shield Power Relay": "'Basic' Shield Power Relay",
|
||||
"Small 'Arup' Remote Armor Repairer": "Small Solace Scoped Remote Armor Repairer",
|
||||
"Medium Diminishing Power System Drain I": "Medium Ghoul Compact Energy Nosferatu",
|
||||
"Local Power Plant Manager: Reaction Shield Flux I": "Mark I Compact Shield Flux Coil",
|
||||
"Large 'Arup' Remote Armor Repairer": "Large Solace Scoped Remote Armor Repairer",
|
||||
"Passive Barrier Compensator I": "M51 Benefactor Compact Shield Recharger",
|
||||
"'Benefactor' Ward Reconstructor": "M51 Benefactor Compact Shield Recharger",
|
||||
"Supplemental Screen Generator I": "M51 Benefactor Compact Shield Recharger",
|
||||
"E5 Prototype Energy Vampire": "Small Knave Scoped Energy Nosferatu",
|
||||
"Medium 'Atonement' Remote Shield Booster": "Medium Murky Compact Remote Shield Booster",
|
||||
"Small 'Atonement' Remote Shield Booster": "Small Murky Compact Remote Shield Booster",
|
||||
"Heavy Diminishing Power System Drain I": "Heavy Ghoul Compact Energy Nosferatu",
|
||||
"Small Unstable Power Fluctuator I": "Small Gremlin Compact Energy Neutralizer",
|
||||
"Local Power Plant Manager: Reaction Shield Power Relay I": "Mark I Compact Shield Power Relay",
|
||||
"'Pacifier' Large Remote Armor Repairer": "'Peace' Large Remote Armor Repairer",
|
||||
"Small Diminishing Power System Drain I": "Small Ghoul Compact Energy Nosferatu",
|
||||
"Small Rudimentary Energy Destabilizer I": "Small Infectious Scoped Energy Neutralizer",
|
||||
"Medium Rudimentary Energy Destabilizer I": "Medium Infectious Scoped Energy Neutralizer",
|
||||
"Beta Reactor Control: Shield Power Relay I": "Type-D Restrained Shield Power Relay",
|
||||
"Micro Asymmetric Remote Shield Booster": "'Micro' Remote Shield Booster",
|
||||
"Micro Murky Remote Shield Booster": "'Micro' Remote Shield Booster",
|
||||
"Micro 'Atonement' Remote Shield Booster": "'Micro' Remote Shield Booster",
|
||||
"Micro S95a Remote Shield Booster": "'Micro' Remote Shield Booster",
|
||||
"Large 'Atonement' Remote Shield Booster": "Large Murky Compact Remote Shield Booster",
|
||||
"E50 Prototype Energy Vampire": "Medium Knave Scoped Energy Nosferatu",
|
||||
}
|
||||
10
service/conversions/releaseFeb2016.py
Normal file
10
service/conversions/releaseFeb2016.py
Normal file
@@ -0,0 +1,10 @@
|
||||
"""
|
||||
Conversion pack for January 2016 (YC118.1) release
|
||||
"""
|
||||
|
||||
CONVERSIONS = {
|
||||
# Renamed items
|
||||
"Capital Coaxial Remote Armor Repairer Blueprint": "CONCORD Capital Remote Armor Repairer Blueprint",
|
||||
"Capital Murky Remote Shield Booster Blueprint": "CONCORD Capital Remote Shield Booster Blueprint",
|
||||
}
|
||||
|
||||
13
service/conversions/releaseJan2016.py
Normal file
13
service/conversions/releaseJan2016.py
Normal file
@@ -0,0 +1,13 @@
|
||||
"""
|
||||
Conversion pack for January 2016 (YC118.1) release
|
||||
"""
|
||||
|
||||
CONVERSIONS = {
|
||||
# Renamed items
|
||||
"Micro' Remote Shield Booster": "'Micro' Remote Shield Booster",
|
||||
"C-IR Compact Guidance Disruptor I": "C-IR Compact Guidance Disruptor",
|
||||
"'Distributor' Guidance Disruptor I": "'Distributor' Guidance Disruptor",
|
||||
"'Distributor' Guidance Disruptor I Blueprint": "'Distributor' Guidance Disruptor Blueprint",
|
||||
"Highstroke Scoped Guidance Disruptor I": "Highstroke Scoped Guidance Disruptor",
|
||||
"A-211 Enduring Guidance Disruptor I": "A-211 Enduring Guidance Disruptor",
|
||||
}
|
||||
361
service/conversions/releaseMar2016.py
Normal file
361
service/conversions/releaseMar2016.py
Normal file
@@ -0,0 +1,361 @@
|
||||
"""
|
||||
Conversion pack for January 2016 (YC118.1) release
|
||||
"""
|
||||
|
||||
CONVERSIONS = {
|
||||
# Renamed items
|
||||
"Basic Gyrostabilizer": "'Basic' Gyrostabilizer",
|
||||
"Basic Damage Control": "'Basic' Damage Control",
|
||||
"Micro Capacitor Battery I": "'Micro' Cap Battery",
|
||||
"ECM Burst I": "Burst Jammer I",
|
||||
"Small Capacitor Battery I": "Small Cap Battery I",
|
||||
"Basic Heat Sink": "'Basic' Heat Sink",
|
||||
"ECM - Ion Field Projector I": "Magnetometric ECM I",
|
||||
"Basic Signal Amplifier": "'Basic' Signal Amplifier",
|
||||
"Basic Tracking Enhancer": "'Basic' Tracking Enhancer",
|
||||
"ECM - Spatial Destabilizer I": "Gravimetric ECM I",
|
||||
"ECM - White Noise Generator I": "Radar ECM I",
|
||||
"ECM - Multispectral Jammer I": "Multispectral ECM I",
|
||||
"ECM - Phase Inverter I": "Ladar ECM I",
|
||||
"Medium Capacitor Battery I": "Medium Cap Battery I",
|
||||
"Large Capacitor Battery I": "Large Cap Battery I",
|
||||
"ECM Burst II": "Burst Jammer II",
|
||||
"Guristas Nova Citadel Cruise Missile": "Guristas Nova XL Cruise Missile",
|
||||
"Guristas Scourge Citadel Cruise Missile": "Guristas Scourge XL Cruise Missile",
|
||||
"Guristas Inferno Citadel Cruise Missile": "Guristas Inferno XL Cruise Missile",
|
||||
"Guristas Mjolnir Citadel Cruise Missile": "Guristas Mjolnir XL Cruise Missile",
|
||||
"ECM - Phase Inverter II": "Ladar ECM II",
|
||||
"ECM - Ion Field Projector II": "Magnetometric ECM II",
|
||||
"ECM - Multispectral Jammer II": "Multispectral ECM II",
|
||||
"ECM - Spatial Destabilizer II": "Gravimetric ECM II",
|
||||
"ECM - White Noise Generator II": "Radar ECM II",
|
||||
"Small Capacitor Battery II": "Small Cap Battery II",
|
||||
"Medium Capacitor Battery II": "Medium Cap Battery II",
|
||||
"Large Capacitor Battery II": "Large Cap Battery II",
|
||||
"'Limos' Citadel Cruise Launcher I": "'Limos' XL Cruise Launcher I",
|
||||
"Shock 'Limos' Citadel Torpedo Bay I": "Shock 'Limos' XL Torpedo Bay I",
|
||||
"X5 Prototype Engine Enervator": "X5 Enduring Stasis Webifier",
|
||||
"Fleeting Propulsion Inhibitor I": "Fleeting Compact Stasis Webifier",
|
||||
"Caldari Fuel Block": "Nitrogen Fuel Block",
|
||||
"Minmatar Fuel Block": "Hydrogen Fuel Block",
|
||||
"Amarr Fuel Block": "Helium Fuel Block",
|
||||
"Gallente Fuel Block": "Oxygen Fuel Block",
|
||||
"Small Ld-Acid Capacitor Battery I": "Small Compact Pb-Acid Cap Battery ",
|
||||
"Large Ld-Acid Capacitor Battery I": "Large Compact Pb-Acid Cap Battery",
|
||||
"F-23 Reciprocal Remote Sensor Booster": "F-23 Compact Remote Sensor Booster",
|
||||
"Coadjunct Linked Remote Sensor Booster": "Coadjunct Scoped Remote Sensor Booster",
|
||||
"Linked Remote Sensor Booster": "Linked Enduring Sensor Booster",
|
||||
"Low Frequency Sensor Suppressor I": "LFT Enduring Sensor Dampener",
|
||||
"Kapteyn Sensor Array Inhibitor I": "Kapteyn Compact Sensor Dampener",
|
||||
"Phased Muon Sensor Disruptor I": "Phased Muon Scoped Sensor Dampener",
|
||||
"F-293 Nutation Remote Tracking Computer": "F-293 Scoped Remote Tracking Computer",
|
||||
"Phase Switching Remote Tracking Computer": "P-S Compact Remote Tracking Computer",
|
||||
"Alfven Surface Remote Tracking Computer": "Alfven Enduring Remote Tracking Computer",
|
||||
"'Deluge' ECM Burst I": "Deluge Enduring Burst Jammer",
|
||||
"'Rash' ECM Emission I": "Rash Compact Burst Jammer",
|
||||
"'Cetus' ECM Shockwave I": "Cetus Scoped Burst Jammer",
|
||||
"J5 Prototype Warp Disruptor I": "J5 Enduring Warp Disruptor",
|
||||
"Faint Warp Disruptor I": "Faint Scoped Warp Disruptor",
|
||||
"Initiated Warp Disruptor I": "Initiated Compact Warp Disruptor",
|
||||
"J5b Phased Prototype Warp Scrambler I": "J5b Enduring Warp Scrambler",
|
||||
"Faint Epsilon Warp Scrambler I": "Faint Epsilon Scoped Warp Scrambler",
|
||||
"Initiated Harmonic Warp Scrambler I": "Initiated Compact Warp Scrambler",
|
||||
"Internal Force Field Array I": "IFFA Compact Damage Control",
|
||||
"Extruded Heat Sink I": "Extruded Compact Heat Sink",
|
||||
"Counterbalanced Weapon Mounts I": "Counterbalanced Compact Gyrostabilizer",
|
||||
"Medium Ld-Acid Capacitor Battery I": "Medium Compact Pb-Acid Cap Battery",
|
||||
"Alumel-Wired Sensor Augmentation": "Alumel-Wired Enduring Sensor Booster",
|
||||
"F-90 Positional Sensor Subroutines": "F-90 Compact Sensor Booster",
|
||||
"Optical Tracking Computer I": "Optical Compact Tracking Computer",
|
||||
"F-12 Nonlinear Tracking Processor": "F-12 Enduring Tracking Computer",
|
||||
"F-89 Synchronized Signal Amplifier": "F-89 Compact Signal Amplifier",
|
||||
"Fourier Transform Tracking Program": "Fourier Compact Tracking Enhancer",
|
||||
"Initiated Multispectral ECM I": "Initiated Enduring Multispectral ECM",
|
||||
"Basic Magnetic Field Stabilizer": "'Basic' Magnetic Field Stabilizer",
|
||||
"Magnetic Vortex Stabilizer I": "Vortex Compact Magnetic Field Stabilizer",
|
||||
"Mizuro's Modified Warp Disruptor": "Mizuro's Modified Heavy Warp Disruptor",
|
||||
"Hakim's Modified Warp Disruptor": "Hakim's Modified Heavy Warp Disruptor",
|
||||
"Gotan's Modified Warp Disruptor": "Gotan's Modified Heavy Warp Disruptor",
|
||||
"Tobias' Modified Warp Disruptor": "Tobias' Modified Heavy Warp Disruptor",
|
||||
"Mizuro's Modified Warp Scrambler": "Mizuro's Modified Heavy Warp Scrambler",
|
||||
"Hakim's Modified Warp Scrambler": "Hakim's Modified Heavy Warp Scrambler",
|
||||
"Gotan's Modified Warp Scrambler": "Gotan's Modified Heavy Warp Scrambler",
|
||||
"Tobias' Modified Warp Scrambler": "Tobias' Modified Heavy Warp Scrambler",
|
||||
"Cross-linked Bolt Array I": "Crosslink Compact Ballistic Control System",
|
||||
"Citadel Torpedo Battery": "XL Torpedo Battery",
|
||||
"Mjolnir Citadel Torpedo": "Mjolnir XL Torpedo",
|
||||
"Scourge Citadel Torpedo": "Scourge XL Torpedo",
|
||||
"Inferno Citadel Torpedo": "Inferno XL Torpedo",
|
||||
"Nova Citadel Torpedo": "Nova XL Torpedo",
|
||||
"Peripheral Weapon Navigation Diameter": "Peripheral Compact Target Painter",
|
||||
"Parallel Weapon Navigation Transmitter": "Parallel Enduring Target Painter",
|
||||
"Phased Weapon Navigation Array Generation Extron": "Phased Scoped Target Painter",
|
||||
"Induced Ion Field ECM I": "Morpheus Enduring Magnetometric ECM",
|
||||
"Compulsive Ion Field ECM I": "Aergia Compact Magnetometric ECM",
|
||||
"'Hypnos' Ion Field ECM I": "Hypnos Scoped Magnetometric ECM",
|
||||
"Induced Multispectral ECM I": "Induced Compact Multispectral ECM",
|
||||
"Compulsive Multispectral ECM I": "Compulsive Scoped Multispectral ECM",
|
||||
"Languid Phase Inversion ECM I": "Languid Enduring Ladar ECM",
|
||||
"Halting Phase Inversion ECM I": "Halting Compact Ladar ECM",
|
||||
"Enfeebling Phase Inversion ECM I": "Enfeebling Scoped Ladar ECM",
|
||||
"FZ-3a Disruptive Spatial Destabilizer ECM": "FZ-3a Enduring Gravimetric ECM",
|
||||
"CZ-4 Concussive Spatial Destabilizer ECM": "CZ-4 Compact Gravimetric ECM",
|
||||
"BZ-5 Neutralizing Spatial Destabilizer ECM": "BZ-5 Scoped Gravimetric ECM",
|
||||
"'Gloom' White Noise ECM": "Gloom Enduring Radar ECM",
|
||||
"'Shade' White Noise ECM": "Shade Compact Radar ECM",
|
||||
"'Umbra' White Noise ECM": "Umbra Scoped Radar ECM",
|
||||
"Dread Guristas ECM Multispectral Jammer": "Dread Guristas Multispectral ECM",
|
||||
"Kaikka's Modified ECM Multispectral Jammer": "Kaikka's Modified Multispectral ECM",
|
||||
"Thon's Modified ECM Multispectral Jammer": "Thon's Modified Multispectral ECM",
|
||||
"Vepas' Modified ECM Multispectral Jammer": "Vepas' Modified Multispectral ECM",
|
||||
"Estamel's Modified ECM Multispectral Jammer": "Estamel's Modified Multispectral ECM",
|
||||
"Citadel Torpedo Launcher I": "XL Torpedo Launcher I",
|
||||
"'Marshall' Ion Field Projector": "'Marshall' Magnetometric ECM",
|
||||
"'Gambler' Phase Inverter": "'Gambler' Ladar ECM",
|
||||
"'Plunderer' Spatial Destabilizer": "'Plunderer' Gravimetric ECM",
|
||||
"'Heist' White Noise Generator": "'Heist' Radar ECM",
|
||||
"'Ghost' ECM Burst": "'Ghost' Burst Jammer",
|
||||
"'Full Duplex' Ballistic Targeting System": "'Full Duplex' Ballistic Control System",
|
||||
"'Kindred' Stabilization Actuator I": "'Kindred' Gyrostabilizer",
|
||||
"Process-Interruptive Warp Disruptor": "'Interruptive' Warp Disruptor",
|
||||
"Multi Sensor Firewall": "'Firewall' Signal Amplifier",
|
||||
"'Inception' Target Painter I": "'Inception' Target Painter",
|
||||
"Citadel Torpedoes": "XL Torpedoes",
|
||||
"'Shady' ECCM - Gravimetric I": "'Shady' Sensor Booster",
|
||||
"'Monopoly' Magnetic Field Stabilizer I": "'Monopoly' Magnetic Field Stabilizer",
|
||||
"'Bootleg' ECCM Projector I": "'Bootleg' Remote Sensor Booster",
|
||||
"'Marketeer' Tracking Computer I": "'Marketeer' Tracking Computer",
|
||||
"'Executive' Remote Sensor Dampener I": "'Executive' Remote Sensor Dampener",
|
||||
"'Radical' Damage Control I": "'Radical' Damage Control",
|
||||
"'Crucible' Small Capacitor Battery I": "'Crucible' Small Cap Battery",
|
||||
"'Censer' Medium Capacitor Battery I": "'Censer' Medium Cap Battery",
|
||||
"'Thurifer' Large Capacitor Battery I": "'Thurifer' Large Cap Battery",
|
||||
"Guristas Citadel Torpedo Battery": "Guristas XL Torpedo Battery",
|
||||
"Dread Guristas Citadel Torpedo Battery": "Dread Guristas XL Torpedo Battery",
|
||||
"Legion ECM Ion Field Projector": "Legion Magnetometric ECM",
|
||||
"Legion ECM Multispectral Jammer": "Legion Multispectral ECM",
|
||||
"Legion ECM Phase Inverter": "Legion Ladar ECM",
|
||||
"Legion ECM Spatial Destabilizer": "Legion Gravimetric ECM",
|
||||
"Legion ECM White Noise Generator": "Legion Radar ECM",
|
||||
"Guristas Nova Citadel Torpedo": "Guristas Nova XL Torpedo",
|
||||
"Guristas Inferno Citadel Torpedo": "Guristas Inferno XL Torpedo",
|
||||
"Guristas Scourge Citadel Torpedo": "Guristas Scourge XL Torpedo",
|
||||
"Guristas Mjolnir Citadel Torpedo": "Guristas Mjolnir XL Torpedo",
|
||||
"Citadel Cruise Missiles": "XL Cruise Missiles",
|
||||
"Scourge Citadel Cruise Missile": "Scourge XL Cruise Missile",
|
||||
"Nova Citadel Cruise Missile": "Nova XL Cruise Missile",
|
||||
"Inferno Citadel Cruise Missile": "Inferno XL Cruise Missile",
|
||||
"Mjolnir Citadel Cruise Missile": "Mjolnir XL Cruise Missile",
|
||||
"Citadel Cruise Launcher I": "XL Cruise Launcher I",
|
||||
|
||||
# Converted items
|
||||
"Muon Coil Bolt Array I": "Crosslink Compact Ballistic Control System",
|
||||
"Multiphasic Bolt Array I": "Crosslink Compact Ballistic Control System",
|
||||
"'Pandemonium' Ballistic Enhancement": "Crosslink Compact Ballistic Control System",
|
||||
"Piercing ECCM Emitter I": "Coadjunct Scoped Remote Sensor Booster",
|
||||
"1Z-3 Subversive ECM Eruption": "Cetus Scoped Burst Jammer",
|
||||
"ECCM - Radar I": "Sensor Booster I",
|
||||
"ECCM - Ladar I": "Sensor Booster I",
|
||||
"ECCM - Magnetometric I": "Sensor Booster I",
|
||||
"ECCM - Gravimetric I": "Sensor Booster I",
|
||||
"ECCM - Omni I": "Sensor Booster I",
|
||||
"Beta-Nought Tracking Mode": "'Basic' Tracking Enhancer",
|
||||
"Azimuth Descalloping Tracking Enhancer": "'Basic' Tracking Enhancer",
|
||||
"F-AQ Delay-Line Scan Tracking Subroutines": "'Basic' Tracking Enhancer",
|
||||
"Beam Parallax Tracking Program": "'Basic' Tracking Enhancer",
|
||||
"GLFF Containment Field": "'Basic' Damage Control",
|
||||
"Interior Force Field Array": "'Basic' Damage Control",
|
||||
"F84 Local Damage System": "'Basic' Damage Control",
|
||||
"Systematic Damage Control": "'Basic' Damage Control",
|
||||
"'Boss' Remote Sensor Booster": "'Bootleg' Remote Sensor Booster",
|
||||
"'Entrepreneur' Remote Sensor Booster": "'Bootleg' Remote Sensor Booster",
|
||||
"Fleeting Progressive Warp Scrambler I": "Faint Epsilon Scoped Warp Scrambler",
|
||||
"ECCM Projector I": "Remote Sensor Booster I",
|
||||
"Sigma-Nought Tracking Mode I": "Fourier Compact Tracking Enhancer",
|
||||
"Auto-Gain Control Tracking Enhancer I": "Fourier Compact Tracking Enhancer",
|
||||
"F-aQ Phase Code Tracking Subroutines": "Fourier Compact Tracking Enhancer",
|
||||
"Monophonic Stabilization Actuator I": "'Kindred' Gyrostabilizer",
|
||||
"Initiated Ion Field ECM I": "Hypnos Scoped Magnetometric ECM",
|
||||
"Insulated Stabilizer Array": "'Basic' Magnetic Field Stabilizer",
|
||||
"Linear Flux Stabilizer": "'Basic' Magnetic Field Stabilizer",
|
||||
"Gauss Field Balancer": "'Basic' Magnetic Field Stabilizer",
|
||||
"Magnetic Vortex Stabilizer": "'Basic' Magnetic Field Stabilizer",
|
||||
"'Capitalist' Magnetic Field Stabilizer I": "'Monopoly' Magnetic Field Stabilizer",
|
||||
"Emergency Damage Control I": "IFFA Compact Damage Control",
|
||||
"F85 Peripheral Damage System I": "IFFA Compact Damage Control",
|
||||
"Pseudoelectron Containment Field I": "IFFA Compact Damage Control",
|
||||
"Micro Ld-Acid Capacitor Battery I": "'Micro' Cap Battery",
|
||||
"Micro Ohm Capacitor Reserve I": "'Micro' Cap Battery",
|
||||
"Micro F-4a Ld-Sulfate Capacitor Charge Unit": "'Micro' Cap Battery",
|
||||
"Micro Peroxide Capacitor Power Cell": "'Micro' Cap Battery",
|
||||
"Micro Capacitor Battery II": "'Micro' Cap Battery",
|
||||
"Lateral Gyrostabilizer": "'Basic' Gyrostabilizer",
|
||||
"F-M2 Weapon Inertial Suspensor": "'Basic' Gyrostabilizer",
|
||||
"Hydraulic Stabilization Actuator": "'Basic' Gyrostabilizer",
|
||||
"Stabilized Weapon Mounts": "'Basic' Gyrostabilizer",
|
||||
"'Hypnos' Multispectral ECM I": "Compulsive Scoped Multispectral ECM",
|
||||
"Fleeting Warp Disruptor I": "Faint Scoped Warp Disruptor",
|
||||
"'Mangonel' Heat Sink I": "'Trebuchet' Heat Sink I",
|
||||
"Heat Exhaust System": "'Basic' Heat Sink",
|
||||
"C3S Convection Thermal Radiator": "'Basic' Heat Sink",
|
||||
"'Boreas' Coolant System": "'Basic' Heat Sink",
|
||||
"Stamped Heat Sink": "'Basic' Heat Sink",
|
||||
"Extra Radar ECCM Scanning Array I": "F-90 Compact Sensor Booster",
|
||||
"Extra Ladar ECCM Scanning Array I": "F-90 Compact Sensor Booster",
|
||||
"Extra Gravimetric ECCM Scanning Array I": "F-90 Compact Sensor Booster",
|
||||
"Extra Magnetometric ECCM Scanning Array I": "F-90 Compact Sensor Booster",
|
||||
"Gravimetric Positional ECCM Sensor System I": "F-90 Compact Sensor Booster",
|
||||
"Radar Positional ECCM Sensor System I": "F-90 Compact Sensor Booster",
|
||||
"Omni Positional ECCM Sensor System I": "F-90 Compact Sensor Booster",
|
||||
"Ladar Positional ECCM Sensor System I": "F-90 Compact Sensor Booster",
|
||||
"Magnetometric Positional ECCM Sensor System I": "F-90 Compact Sensor Booster",
|
||||
"Conjunctive Radar ECCM Scanning Array I": "F-90 Compact Sensor Booster",
|
||||
"Conjunctive Ladar ECCM Scanning Array I": "F-90 Compact Sensor Booster",
|
||||
"Conjunctive Gravimetric ECCM Scanning Array I": "F-90 Compact Sensor Booster",
|
||||
"Conjunctive Magnetometric ECCM Scanning Array I": "F-90 Compact Sensor Booster",
|
||||
"Supplemental Scanning CPU I": "F-90 Compact Sensor Booster",
|
||||
"'Gonzo' Damage Control I": "'Radical' Damage Control",
|
||||
"'Penumbra' White Noise ECM": "Umbra Scoped Radar ECM",
|
||||
"ECCM - Omni II": "Sensor Booster II",
|
||||
"ECCM - Gravimetric II": "Sensor Booster II",
|
||||
"ECCM - Ladar II": "Sensor Booster II",
|
||||
"ECCM - Magnetometric II": "Sensor Booster II",
|
||||
"ECCM - Radar II": "Sensor Booster II",
|
||||
"Scattering ECCM Projector I": "Linked Enduring Sensor Booster",
|
||||
"Gravimetric Backup Array I": "Signal Amplifier I",
|
||||
"Ladar Backup Array I": "Signal Amplifier I",
|
||||
"Magnetometric Backup Array I": "Signal Amplifier I",
|
||||
"Multi Sensor Backup Array I": "Signal Amplifier I",
|
||||
"RADAR Backup Array I": "Signal Amplifier I",
|
||||
"Large Ohm Capacitor Reserve I": "Large Compact Pb-Acid Cap Battery",
|
||||
"Large F-4a Ld-Sulfate Capacitor Charge Unit": "Large Compact Pb-Acid Cap Battery",
|
||||
"Large Peroxide Capacitor Power Cell": "Large Compact Pb-Acid Cap Battery",
|
||||
"ECCM Projector II": "Remote Sensor Booster II",
|
||||
"Cross-Lateral Gyrostabilizer I": "Counterbalanced Compact Gyrostabilizer",
|
||||
"F-M3 Munition Inertial Suspensor": "Counterbalanced Compact Gyrostabilizer",
|
||||
"Pneumatic Stabilization Actuator I": "Counterbalanced Compact Gyrostabilizer",
|
||||
"'Langour' Drive Disruptor I": "X5 Enduring Stasis Webifier",
|
||||
"Patterned Stasis Web I": "Fleeting Compact Stasis Webifier",
|
||||
"'Tycoon' Remote Tracking Computer": "'Enterprise' Remote Tracking Computer",
|
||||
"'Economist' Tracking Computer I": "'Marketeer' Tracking Computer",
|
||||
"Gravimetric Backup Array II": "Signal Amplifier II",
|
||||
"Ladar Backup Array II": "Signal Amplifier II",
|
||||
"Magnetometric Backup Array II": "Signal Amplifier II",
|
||||
"Multi Sensor Backup Array II": "Signal Amplifier II",
|
||||
"RADAR Backup Array II": "Signal Amplifier II",
|
||||
"Faint Phase Inversion ECM I": "Enfeebling Scoped Ladar ECM",
|
||||
"'Prayer' Remote Tracking Computer": "P-S Compact Remote Tracking Computer",
|
||||
"Partial Weapon Navigation": "Phased Scoped Target Painter",
|
||||
"Basic RADAR Backup Array": "'Basic' Signal Amplifier",
|
||||
"Basic Ladar Backup Array": "'Basic' Signal Amplifier",
|
||||
"Basic Gravimetric Backup Array": "'Basic' Signal Amplifier",
|
||||
"Basic Magnetometric Backup Array": "'Basic' Signal Amplifier",
|
||||
"Basic Multi Sensor Backup Array": "'Basic' Signal Amplifier",
|
||||
"Emergency Magnetometric Scanners": "'Basic' Signal Amplifier",
|
||||
"Emergency Multi-Frequency Scanners": "'Basic' Signal Amplifier",
|
||||
"Emergency RADAR Scanners": "'Basic' Signal Amplifier",
|
||||
"Emergency Ladar Scanners": "'Basic' Signal Amplifier",
|
||||
"Emergency Gravimetric Scanners": "'Basic' Signal Amplifier",
|
||||
"Sealed RADAR Backup Cluster": "'Basic' Signal Amplifier",
|
||||
"Sealed Magnetometric Backup Cluster": "'Basic' Signal Amplifier",
|
||||
"Sealed Multi-Frequency Backup Cluster": "'Basic' Signal Amplifier",
|
||||
"Sealed Ladar Backup Cluster": "'Basic' Signal Amplifier",
|
||||
"Sealed Gravimetric Backup Cluster": "'Basic' Signal Amplifier",
|
||||
"Surplus RADAR Reserve Array": "'Basic' Signal Amplifier",
|
||||
"F-42 Reiterative RADAR Backup Sensors": "'Basic' Signal Amplifier",
|
||||
"Surplus Magnetometric Reserve Array": "'Basic' Signal Amplifier",
|
||||
"F-42 Reiterative Magnetometric Backup Sensors": "'Basic' Signal Amplifier",
|
||||
"Surplus Multi-Frequency Reserve Array": "'Basic' Signal Amplifier",
|
||||
"F-42 Reiterative Multi-Frequency Backup Sensors": "'Basic' Signal Amplifier",
|
||||
"Surplus Ladar Reserve Array": "'Basic' Signal Amplifier",
|
||||
"F-42 Reiterative Ladar Backup Sensors": "'Basic' Signal Amplifier",
|
||||
"Surplus Gravimetric Reserve Array": "'Basic' Signal Amplifier",
|
||||
"F-42 Reiterative Gravimetric Backup Sensors": "'Basic' Signal Amplifier",
|
||||
"Amplitude Signal Enhancer": "'Basic' Signal Amplifier",
|
||||
"'Acolyth' Signal Booster": "'Basic' Signal Amplifier",
|
||||
"Type-E Discriminative Signal Augmentation": "'Basic' Signal Amplifier",
|
||||
"F-90 Positional Signal Amplifier": "'Basic' Signal Amplifier",
|
||||
"Gravimetric Firewall": "'Firewall' Signal Amplifier",
|
||||
"Ladar Firewall": "'Firewall' Signal Amplifier",
|
||||
"Magnetometric Firewall": "'Firewall' Signal Amplifier",
|
||||
"Multi Sensor Firewall": "'Firewall' Signal Amplifier",
|
||||
"RADAR Firewall": "'Firewall' Signal Amplifier",
|
||||
"'Pacifier' Large Remote Armor Repairer": "'Peace' Large Remote Armor Repairer",
|
||||
"Monopulse Tracking Mechanism I": "F-12 Enduring Tracking Computer",
|
||||
"Alumel Radar ECCM Sensor Array I": "Alumel-Wired Enduring Sensor Booster",
|
||||
"Alumel Ladar ECCM Sensor Array I": "Alumel-Wired Enduring Sensor Booster",
|
||||
"Alumel Gravimetric ECCM Sensor Array I": "Alumel-Wired Enduring Sensor Booster",
|
||||
"Alumel Omni ECCM Sensor Array I": "Alumel-Wired Enduring Sensor Booster",
|
||||
"Alumel Magnetometric ECCM Sensor Array I": "Alumel-Wired Enduring Sensor Booster",
|
||||
"Supplemental Ladar ECCM Scanning Array I": "Alumel-Wired Enduring Sensor Booster",
|
||||
"Supplemental Gravimetric ECCM Scanning Array I": "Alumel-Wired Enduring Sensor Booster",
|
||||
"Supplemental Omni ECCM Scanning Array I": "Alumel-Wired Enduring Sensor Booster",
|
||||
"Supplemental Radar ECCM Scanning Array I": "Alumel-Wired Enduring Sensor Booster",
|
||||
"Supplemental Magnetometric ECCM Scanning Array I": "Alumel-Wired Enduring Sensor Booster",
|
||||
"Incremental Radar ECCM Scanning Array I": "Alumel-Wired Enduring Sensor Booster",
|
||||
"Incremental Ladar ECCM Scanning Array I": "Alumel-Wired Enduring Sensor Booster",
|
||||
"Incremental Gravimetric ECCM Scanning Array I": "Alumel-Wired Enduring Sensor Booster",
|
||||
"Incremental Magnetometric ECCM Scanning Array I": "Alumel-Wired Enduring Sensor Booster",
|
||||
"Prototype ECCM Radar Sensor Cluster": "Alumel-Wired Enduring Sensor Booster",
|
||||
"Prototype ECCM Ladar Sensor Cluster": "Alumel-Wired Enduring Sensor Booster",
|
||||
"Prototype ECCM Gravimetric Sensor Cluster": "Alumel-Wired Enduring Sensor Booster",
|
||||
"Prototype ECCM Omni Sensor Cluster": "Alumel-Wired Enduring Sensor Booster",
|
||||
"Prototype ECCM Magnetometric Sensor Cluster": "Alumel-Wired Enduring Sensor Booster",
|
||||
"Prototype Sensor Booster": "Alumel-Wired Enduring Sensor Booster",
|
||||
"Thermal Exhaust System I": "Extruded Compact Heat Sink",
|
||||
"C4S Coiled Circuit Thermal Radiator": "Extruded Compact Heat Sink",
|
||||
"'Skadi' Coolant System I": "Extruded Compact Heat Sink",
|
||||
"'Forger' ECCM - Magnetometric I": "'Shady' Sensor Booster",
|
||||
"Insulated Stabilizer Array I": "Vortex Compact Magnetic Field Stabilizer",
|
||||
"Linear Flux Stabilizer I": "Vortex Compact Magnetic Field Stabilizer",
|
||||
"Gauss Field Balancer I": "Vortex Compact Magnetic Field Stabilizer",
|
||||
"'Broker' Remote Sensor Dampener I": "'Executive' Remote Sensor Dampener",
|
||||
"'Orion' Tracking CPU I": "Optical Compact Tracking Computer",
|
||||
"Spot Pulsing ECCM I": "F-23 Compact Remote Sensor Booster",
|
||||
"Phased Muon ECCM Caster I": "F-23 Compact Remote Sensor Booster",
|
||||
"Connected Remote Sensor Booster": "F-23 Compact Remote Sensor Booster",
|
||||
"Small Ohm Capacitor Reserve I": "Small Compact Pb-Acid Cap Battery",
|
||||
"Small F-4a Ld-Sulfate Capacitor Charge Unit": "Small Compact Pb-Acid Cap Battery",
|
||||
"Small Peroxide Capacitor Power Cell": "Small Compact Pb-Acid Cap Battery",
|
||||
"FZ-3 Subversive Spatial Destabilizer ECM": "BZ-5 Scoped Gravimetric ECM",
|
||||
"Medium Ohm Capacitor Reserve I": "Medium Compact Pb-Acid Cap Battery",
|
||||
"Medium F-4a Ld-Sulfate Capacitor Charge Unit": "Medium Compact Pb-Acid Cap Battery",
|
||||
"Medium Peroxide Capacitor Power Cell": "Medium Compact Pb-Acid Cap Battery",
|
||||
"Ballistic 'Purge' Targeting System I": "'Full Duplex' Ballistic Control System",
|
||||
"Protected Gravimetric Backup Cluster I": "F-89 Compact Signal Amplifier",
|
||||
"Protected Ladar Backup Cluster I": "F-89 Compact Signal Amplifier",
|
||||
"Protected Magnetometric Backup Cluster I": "F-89 Compact Signal Amplifier",
|
||||
"Protected Multi-Frequency Backup Cluster I": "F-89 Compact Signal Amplifier",
|
||||
"Protected RADAR Backup Cluster I": "F-89 Compact Signal Amplifier",
|
||||
"Reserve Gravimetric Scanners": "F-89 Compact Signal Amplifier",
|
||||
"Reserve Ladar Scanners": "F-89 Compact Signal Amplifier",
|
||||
"Reserve Magnetometric Scanners": "F-89 Compact Signal Amplifier",
|
||||
"Reserve Multi-Frequency Scanners": "F-89 Compact Signal Amplifier",
|
||||
"Reserve RADAR Scanners": "F-89 Compact Signal Amplifier",
|
||||
"Secure Gravimetric Backup Cluster I": "F-89 Compact Signal Amplifier",
|
||||
"Secure Ladar Backup Cluster I": "F-89 Compact Signal Amplifier",
|
||||
"Secure Magnetometric Backup Cluster I": "F-89 Compact Signal Amplifier",
|
||||
"Secure Radar Backup Cluster I": "F-89 Compact Signal Amplifier",
|
||||
"F-43 Repetitive Gravimetric Backup Sensors": "F-89 Compact Signal Amplifier",
|
||||
"F-43 Repetitive Ladar Backup Sensors": "F-89 Compact Signal Amplifier",
|
||||
"F-43 Repetitive Magnetometric Backup Sensors": "F-89 Compact Signal Amplifier",
|
||||
"F-43 Repetitive Multi-Frequency Backup Sensors": "F-89 Compact Signal Amplifier",
|
||||
"F-43 Repetitive RADAR Backup Sensors": "F-89 Compact Signal Amplifier",
|
||||
"Shielded Gravimetric Backup Cluster I": "F-89 Compact Signal Amplifier",
|
||||
"Shielded Ladar Backup Cluster I": "F-89 Compact Signal Amplifier",
|
||||
"Shielded Magnetometric Backup Cluster I": "F-89 Compact Signal Amplifier",
|
||||
"Shielded Radar Backup Cluster I": "F-89 Compact Signal Amplifier",
|
||||
"Surrogate Gravimetric Reserve Array I": "F-89 Compact Signal Amplifier",
|
||||
"Surrogate Ladar Reserve Array I": "F-89 Compact Signal Amplifier",
|
||||
"Surrogate Magnetometric Reserve Array I": "F-89 Compact Signal Amplifier",
|
||||
"Surrogate Multi-Frequency Reserve Array I": "F-89 Compact Signal Amplifier",
|
||||
"Surrogate RADAR Reserve Array I": "F-89 Compact Signal Amplifier",
|
||||
"Warded Gravimetric Backup Cluster I": "F-89 Compact Signal Amplifier",
|
||||
"Warded Ladar Backup Cluster I": "F-89 Compact Signal Amplifier",
|
||||
"Warded Magnetometric Backup Cluster I": "F-89 Compact Signal Amplifier",
|
||||
"Warded Radar Backup Cluster I": "F-89 Compact Signal Amplifier",
|
||||
"'Mendicant' Signal Booster I": "F-89 Compact Signal Amplifier",
|
||||
"Wavelength Signal Enhancer I": "F-89 Compact Signal Amplifier",
|
||||
"Type-D Attenuation Signal Augmentation": "F-89 Compact Signal Amplifier",
|
||||
"Indirect Scanning Dampening Unit I": "Phased Muon Scoped Sensor Dampener",
|
||||
}
|
||||
@@ -24,6 +24,8 @@ import logging
|
||||
import wx
|
||||
from codecs import open
|
||||
|
||||
import xml.parsers.expat
|
||||
|
||||
import eos.db
|
||||
import eos.types
|
||||
|
||||
@@ -65,10 +67,13 @@ class FitImportThread(threading.Thread):
|
||||
|
||||
def run(self):
|
||||
sFit = Fit.getInstance()
|
||||
fits = sFit.importFitFromFiles(self.paths, self.callback)
|
||||
success, result = sFit.importFitFromFiles(self.paths, self.callback)
|
||||
|
||||
# Send done signal to GUI
|
||||
wx.CallAfter(self.callback, -1, fits)
|
||||
if not success: # there was an error during processing
|
||||
logger.error("Error while processing file import: %s", result)
|
||||
wx.CallAfter(self.callback, -2, result)
|
||||
else: # Send done signal to GUI
|
||||
wx.CallAfter(self.callback, -1, result)
|
||||
|
||||
|
||||
class Fit(object):
|
||||
@@ -98,7 +103,9 @@ class Fit(object):
|
||||
"rackLabels": True,
|
||||
"compactSkills": True,
|
||||
"showTooltip": True,
|
||||
"showMarketShortcuts": False}
|
||||
"showMarketShortcuts": False,
|
||||
"enableGaugeAnimation": True,
|
||||
"exportCharges": True}
|
||||
|
||||
self.serviceFittingOptions = SettingsProvider.getInstance().getSettings(
|
||||
"pyfaServiceFittingOptions", serviceFittingDefaultOptions)
|
||||
@@ -849,24 +856,50 @@ class Fit(object):
|
||||
fits = []
|
||||
for path in paths:
|
||||
if callback: # Pulse
|
||||
wx.CallAfter(callback, "Processing file:\n%s"%path)
|
||||
wx.CallAfter(callback, 1, "Processing file:\n%s"%path)
|
||||
|
||||
file = open(path, "r")
|
||||
srcString = file.read()
|
||||
|
||||
if len(srcString) == 0: # ignore blank files
|
||||
continue
|
||||
|
||||
codec_found = None
|
||||
# If file had ANSI encoding, convert it to unicode using system
|
||||
# default codepage, or use fallbacks UTF-16, then cp1252 on any
|
||||
# encoding errors
|
||||
# If file had ANSI encoding, decode it to unicode using detection
|
||||
# of BOM header or if there is no header try default
|
||||
# codepage then fallback to utf-16, cp1252
|
||||
|
||||
if isinstance(srcString, str):
|
||||
attempt_codecs = (defcodepage, "utf-16", "cp1252")
|
||||
for page in attempt_codecs:
|
||||
try:
|
||||
srcString = unicode(srcString, page)
|
||||
codec_found = page
|
||||
except UnicodeDecodeError:
|
||||
logger.warn("Error unicode decoding %s from page %s, trying next codec", path, page)
|
||||
else:
|
||||
break
|
||||
encoding_map = (
|
||||
('\xef\xbb\xbf', 'utf-8'),
|
||||
('\xff\xfe\0\0', 'utf-32'),
|
||||
('\0\0\xfe\xff', 'UTF-32BE'),
|
||||
('\xff\xfe', 'utf-16'),
|
||||
('\xfe\xff', 'UTF-16BE'))
|
||||
|
||||
for bom, encoding in encoding_map:
|
||||
if srcString.startswith(bom):
|
||||
codec_found = encoding
|
||||
savebom = bom
|
||||
|
||||
if codec_found is None:
|
||||
logger.info("Unicode BOM not found in file %s.", path)
|
||||
attempt_codecs = (defcodepage, "utf-8", "utf-16", "cp1252")
|
||||
|
||||
for page in attempt_codecs:
|
||||
try:
|
||||
logger.info("Attempting to decode file %s using %s page.", path, page)
|
||||
srcString = unicode(srcString, page)
|
||||
codec_found = page
|
||||
logger.info("File %s decoded using %s page.", path, page)
|
||||
except UnicodeDecodeError:
|
||||
logger.info("Error unicode decoding %s from page %s, trying next codec", path, page)
|
||||
else:
|
||||
break
|
||||
else:
|
||||
logger.info("Unicode BOM detected in %s, using %s page.", path, codec_found)
|
||||
srcString = unicode(srcString[len(savebom):], codec_found)
|
||||
|
||||
else:
|
||||
# nasty hack to detect other transparent utf-16 loading
|
||||
if srcString[0] == '<' and 'utf-16' in srcString[:128].lower():
|
||||
@@ -874,8 +907,17 @@ class Fit(object):
|
||||
else:
|
||||
codec_found = "utf-8"
|
||||
|
||||
_, fitsImport = Port.importAuto(srcString, path, callback=callback, encoding=codec_found)
|
||||
fits += fitsImport
|
||||
if codec_found is None:
|
||||
return False, "Proper codec could not be established for %s" % path
|
||||
|
||||
try:
|
||||
_, fitsImport = Port.importAuto(srcString, path, callback=callback, encoding=codec_found)
|
||||
fits += fitsImport
|
||||
except xml.parsers.expat.ExpatError, e:
|
||||
return False, "Malformed XML in %s"%path
|
||||
except Exception, e:
|
||||
logger.exception("Unknown exception processing: %s", path)
|
||||
return False, "Unknown Error while processing %s"%path
|
||||
|
||||
IDs = []
|
||||
numFits = len(fits)
|
||||
@@ -888,12 +930,12 @@ class Fit(object):
|
||||
IDs.append(fit.ID)
|
||||
if callback: # Pulse
|
||||
wx.CallAfter(
|
||||
callback,
|
||||
callback, 1,
|
||||
"Processing complete, saving fits to database\n(%d/%d)" %
|
||||
(i+1, numFits)
|
||||
)
|
||||
|
||||
return fits
|
||||
return True, fits
|
||||
|
||||
def importFitFromBuffer(self, bufferStr, activeFit=None):
|
||||
_, fits = Port.importAuto(bufferStr, activeFit=activeFit)
|
||||
|
||||
@@ -235,7 +235,11 @@ class Market():
|
||||
"Guristas Shuttle": False,
|
||||
"Mobile Decoy Unit": False, # Seems to be left over test mod for deployables
|
||||
"Tournament Micro Jump Unit": False, # Normally seen only on tournament arenas
|
||||
"Council Diplomatic Shuttle": False, # CSM X celebration]
|
||||
"Council Diplomatic Shuttle": False, # CSM X celebration
|
||||
"Civilian Gatling Railgun": True,
|
||||
"Civilian Gatling Pulse Laser": True,
|
||||
"Civilian Gatling Autocannon": True,
|
||||
"Civilian Light Electron Blaster": True,
|
||||
}
|
||||
|
||||
# do not publish ships that we convert
|
||||
@@ -262,8 +266,7 @@ class Market():
|
||||
"'Wild' Miner I": ("Storyline", "Miner I"),
|
||||
"Medium Nano Armor Repair Unit I": ("Tech I", "Medium Armor Repairer I"),
|
||||
"Large 'Reprieve' Vestment Reconstructer I": ("Storyline", "Large Armor Repairer I"),
|
||||
"Khanid Navy Torpedo Launcher": ("Faction", "Torpedo Launcher I"),
|
||||
"Shadow Serpentis Remote Sensor Dampener": ("Faction", "Remote Sensor Dampener I") }
|
||||
"Khanid Navy Torpedo Launcher": ("Faction", "Torpedo Launcher I"),}
|
||||
# Parent type name: set(item names)
|
||||
self.ITEMS_FORCEDMETAGROUP_R = {}
|
||||
for item, value in self.ITEMS_FORCEDMETAGROUP.items():
|
||||
@@ -504,8 +507,10 @@ class Market():
|
||||
parents.add(parent)
|
||||
# Check for overrides and add them if any
|
||||
if parent.name in self.ITEMS_FORCEDMETAGROUP_R:
|
||||
for itmn in self.ITEMS_FORCEDMETAGROUP_R[parent.name]:
|
||||
variations.add(self.getItem(itmn))
|
||||
for item in self.ITEMS_FORCEDMETAGROUP_R[parent.name]:
|
||||
i = self.getItem(item)
|
||||
if i:
|
||||
variations.add(i)
|
||||
# Add all parents to variations set
|
||||
variations.update(parents)
|
||||
# Add all variations of parents to the set
|
||||
|
||||
@@ -44,6 +44,9 @@ INV_FLAGS = {
|
||||
Slot.RIG: 92,
|
||||
Slot.SUBSYSTEM: 125}
|
||||
|
||||
INV_FLAG_CARGOBAY = 5
|
||||
INV_FLAG_DRONEBAY = 87
|
||||
|
||||
class Port(object):
|
||||
"""Service which houses all import/export format functions"""
|
||||
@classmethod
|
||||
@@ -90,7 +93,24 @@ class Port(object):
|
||||
item['type']['href'] = "%stypes/%d/"%(eve._authed_endpoint, module.item.ID)
|
||||
item['type']['id'] = module.item.ID
|
||||
item['type']['name'] = ''
|
||||
fit['items'].append(item)
|
||||
|
||||
for cargo in ofit.cargo:
|
||||
item = nested_dict()
|
||||
item['flag'] = INV_FLAG_CARGOBAY
|
||||
item['quantity'] = cargo.amount
|
||||
item['type']['href'] = "%stypes/%d/"%(eve._authed_endpoint, cargo.item.ID)
|
||||
item['type']['id'] = cargo.item.ID
|
||||
item['type']['name'] = ''
|
||||
fit['items'].append(item)
|
||||
|
||||
for drone in ofit.drones:
|
||||
item = nested_dict()
|
||||
item['flag'] = INV_FLAG_DRONEBAY
|
||||
item['quantity'] = drone.amount
|
||||
item['type']['href'] = "%stypes/%d/"%(eve._authed_endpoint, drone.item.ID)
|
||||
item['type']['id'] = drone.item.ID
|
||||
item['type']['name'] = ''
|
||||
fit['items'].append(item)
|
||||
|
||||
return json.dumps(fit)
|
||||
@@ -142,11 +162,11 @@ class Port(object):
|
||||
for module in items:
|
||||
try:
|
||||
item = sMkt.getItem(module['type']['id'], eager="group.category")
|
||||
if item.category.name == "Drone":
|
||||
if module['flag'] == INV_FLAG_DRONEBAY:
|
||||
d = Drone(item)
|
||||
d.amount = module['quantity']
|
||||
f.drones.append(d)
|
||||
elif item.category.name == "Charge":
|
||||
elif module['flag'] == INV_FLAG_CARGOBAY:
|
||||
c = Cargo(item)
|
||||
c.amount = module['quantity']
|
||||
f.cargo.append(c)
|
||||
@@ -531,12 +551,13 @@ class Port(object):
|
||||
offineSuffix = " /OFFLINE"
|
||||
export = "[%s, %s]\n" % (fit.ship.item.name, fit.name)
|
||||
stuff = {}
|
||||
sFit = service.Fit.getInstance()
|
||||
for module in fit.modules:
|
||||
slot = module.slot
|
||||
if not slot in stuff:
|
||||
stuff[slot] = []
|
||||
curr = module.item.name if module.item else ("[Empty %s slot]" % Slot.getName(slot).capitalize() if slot is not None else "")
|
||||
if module.charge:
|
||||
if module.charge and sFit.serviceFittingOptions["exportCharges"]:
|
||||
curr += ", %s" % module.charge.name
|
||||
if module.state == State.OFFLINE:
|
||||
curr += offineSuffix
|
||||
@@ -644,6 +665,8 @@ class Port(object):
|
||||
doc = xml.dom.minidom.Document()
|
||||
fittings = doc.createElement("fittings")
|
||||
doc.appendChild(fittings)
|
||||
sFit = service.Fit.getInstance()
|
||||
|
||||
for i, fit in enumerate(fits):
|
||||
try:
|
||||
fitting = doc.createElement("fitting")
|
||||
@@ -681,7 +704,7 @@ class Port(object):
|
||||
hardware.setAttribute("slot", "%s slot %d" % (slotName, slotId))
|
||||
fitting.appendChild(hardware)
|
||||
|
||||
if module.charge:
|
||||
if module.charge and sFit.serviceFittingOptions["exportCharges"]:
|
||||
if not module.charge.name in charges:
|
||||
charges[module.charge.name] = 0
|
||||
# `or 1` because some charges (ie scripts) are without qty
|
||||
|
||||
@@ -26,6 +26,7 @@ except ImportError: # pragma: no cover
|
||||
from urllib import quote
|
||||
import logging
|
||||
import re
|
||||
import config
|
||||
|
||||
logger = logging.getLogger("pycrest.eve")
|
||||
cache_re = re.compile(r'max-age=([0-9]+)')
|
||||
@@ -103,7 +104,7 @@ class APIConnection(object):
|
||||
if additional_headers is None:
|
||||
additional_headers = {}
|
||||
if user_agent is None:
|
||||
user_agent = "PyCrest/{0}".format(version)
|
||||
user_agent = "pyfa/{0} ({1})".format(config.version, config.tag)
|
||||
session.headers.update({
|
||||
"User-Agent": user_agent,
|
||||
"Accept": "application/json",
|
||||
|
||||
@@ -3,6 +3,7 @@ import urlparse
|
||||
import socket
|
||||
import thread
|
||||
import wx
|
||||
from service.settings import CRESTSettings
|
||||
|
||||
import logging
|
||||
|
||||
@@ -55,8 +56,11 @@ class StoppableHTTPServer(BaseHTTPServer.HTTPServer):
|
||||
|
||||
def server_bind(self):
|
||||
BaseHTTPServer.HTTPServer.server_bind(self)
|
||||
# Allow listening for 60 seconds
|
||||
sec = 60
|
||||
self.settings = CRESTSettings.getInstance()
|
||||
|
||||
# Allow listening for x seconds
|
||||
sec = self.settings.get('timeout')
|
||||
logger.debug("Running server for %d seconds", sec)
|
||||
|
||||
self.socket.settimeout(0.5)
|
||||
self.max_tries = sec / self.socket.gettimeout()
|
||||
|
||||
@@ -278,7 +278,7 @@ class CRESTSettings():
|
||||
# mode
|
||||
# 0 - Implicit authentication
|
||||
# 1 - User-supplied client details
|
||||
serviceCRESTDefaultSettings = {"mode": 0, "server": 0, "clientID": "", "clientSecret": ""}
|
||||
serviceCRESTDefaultSettings = {"mode": 0, "server": 0, "clientID": "", "clientSecret": "", "timeout": 60}
|
||||
|
||||
self.serviceCRESTSettings = SettingsProvider.getInstance().getSettings("pyfaServiceCRESTSettings", serviceCRESTDefaultSettings)
|
||||
|
||||
|
||||
@@ -37,7 +37,7 @@ class CheckUpdateThread(threading.Thread):
|
||||
network = service.Network.getInstance()
|
||||
|
||||
try:
|
||||
response = network.request('https://api.github.com/repos/DarkFenX/Pyfa/releases', network.UPDATE)
|
||||
response = network.request('https://api.github.com/repos/pyfa-org/Pyfa/releases', network.UPDATE)
|
||||
jsonResponse = json.loads(response.read())
|
||||
jsonResponse.sort(key=lambda x: calendar.timegm(dateutil.parser.parse(x['published_at']).utctimetuple()), reverse=True)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user