mirror of
https://github.com/xqtc161/meowlog.git
synced 2025-02-23 06:17:52 +01:00
Parser for drugs.json
This commit is contained in:
parent
c26f70a52f
commit
212dbdb313
271
client/src/drugs_parser/mod.rs
Normal file
271
client/src/drugs_parser/mod.rs
Normal file
|
@ -0,0 +1,271 @@
|
|||
use serde::{Deserialize, Serialize};
|
||||
use std::collections::HashMap;
|
||||
mod parser;
|
||||
|
||||
pub fn parse() {
|
||||
let file = include_str!("../../../drugs.json");
|
||||
let db: DrugDatabase = serde_json::from_str(file).unwrap();
|
||||
println!("{:?}", db);
|
||||
}
|
||||
|
||||
#[derive(Serialize, Deserialize, Debug)]
|
||||
pub struct DrugDatabase(HashMap<String, Drug>);
|
||||
|
||||
#[derive(Serialize, Deserialize, Debug)]
|
||||
pub struct Drug {
|
||||
pub aliases: Option<Vec<String>>,
|
||||
pub categories: Option<Vec<Category>>,
|
||||
#[serde(rename = "formatted_aftereffects")]
|
||||
pub formatted_aftereffects: Option<Duration>,
|
||||
#[serde(rename = "formatted_dose")]
|
||||
pub formatted_dose: Option<Dose>,
|
||||
#[serde(rename = "formatted_duration")]
|
||||
pub formatted_duration: Option<Duration>,
|
||||
#[serde(rename = "formatted_effects")]
|
||||
pub formatted_effects: Option<Vec<String>>,
|
||||
#[serde(rename = "formatted_onset")]
|
||||
pub formatted_onset: Option<Duration>,
|
||||
pub links: Option<Links>,
|
||||
pub name: String,
|
||||
#[serde(rename = "pretty_name")]
|
||||
pub pretty_name: String,
|
||||
pub properties: Properties,
|
||||
pub pweffects: Option<HashMap<String, String>>,
|
||||
#[serde(rename = "dose_note")]
|
||||
pub dose_note: Option<String>,
|
||||
pub sources: Option<Sources>,
|
||||
pub combos: Option<Combos>,
|
||||
}
|
||||
|
||||
#[derive(Serialize, Deserialize, Debug)]
|
||||
#[serde(rename_all = "kebab-case")]
|
||||
pub enum Category {
|
||||
Depressant,
|
||||
HabitForming,
|
||||
Tentative,
|
||||
ResearchChemical,
|
||||
Psychedelic,
|
||||
Stimulant,
|
||||
Dissociative,
|
||||
Inactive,
|
||||
Empathogen,
|
||||
Common,
|
||||
Benzodiazepine,
|
||||
Opioid,
|
||||
Supplement,
|
||||
Nootropic,
|
||||
Barbiturate,
|
||||
Deliriant,
|
||||
Ssri,
|
||||
}
|
||||
|
||||
#[derive(Serialize, Deserialize, Debug)]
|
||||
pub struct Dose {
|
||||
pub oral: Option<Dosage>,
|
||||
pub insufflated: Option<Dosage>,
|
||||
pub rectal: Option<Dosage>,
|
||||
pub vapourized: Option<Dosage>,
|
||||
pub intravenous: Option<Dosage>,
|
||||
pub smoked: Option<Dosage>,
|
||||
pub sublingual: Option<Dosage>,
|
||||
pub buccal: Option<Dosage>,
|
||||
pub intramuscular: Option<Dosage>,
|
||||
pub transdermal: Option<Dosage>,
|
||||
pub hbwr: Option<Dosage>,
|
||||
#[serde(rename = "Morning_Glory")]
|
||||
pub morning_glory: Option<Dosage>,
|
||||
pub dried: Option<Dosage>,
|
||||
pub fresh: Option<Dosage>,
|
||||
#[serde(rename = "Insufflated(Pure)")]
|
||||
pub insufflated_pure: Option<Dosage>,
|
||||
#[serde(rename = "Oral(Benzedrex)")]
|
||||
pub oral_benzedrex: Option<Dosage>,
|
||||
#[serde(rename = "Oral(Pure)")]
|
||||
pub oral_pure: Option<Dosage>,
|
||||
pub dry: Option<Dosage>,
|
||||
pub wet: Option<Dosage>,
|
||||
}
|
||||
|
||||
#[derive(Serialize, Deserialize, Debug)]
|
||||
pub struct Dosage {
|
||||
pub common: Option<String>,
|
||||
pub light: Option<String>,
|
||||
pub strong: Option<String>,
|
||||
pub threshold: Option<String>,
|
||||
pub heavy: Option<String>,
|
||||
pub dangerous: Option<String>,
|
||||
pub fatal: Option<String>,
|
||||
pub note: Option<String>,
|
||||
}
|
||||
|
||||
#[derive(Serialize, Deserialize, Debug)]
|
||||
pub struct Duration {
|
||||
#[serde(rename = "_unit")]
|
||||
pub unit: Option<Unit>,
|
||||
pub value: Option<String>,
|
||||
pub insufflated: Option<String>,
|
||||
pub oral: Option<String>,
|
||||
pub rectal: Option<String>,
|
||||
pub vapourized: Option<String>,
|
||||
pub smoked: Option<String>,
|
||||
#[serde(rename = "Oral_ER")]
|
||||
pub oral_er: Option<String>,
|
||||
#[serde(rename = "Oral_IR")]
|
||||
pub oral_ir: Option<String>,
|
||||
pub intramuscular: Option<String>,
|
||||
pub intravenous: Option<String>,
|
||||
pub metabolites: Option<String>,
|
||||
pub parent: Option<String>,
|
||||
#[serde(rename = "Oral_MAOI")]
|
||||
pub oral_maoi: Option<String>,
|
||||
pub buccal: Option<String>,
|
||||
pub transdermal: Option<String>,
|
||||
pub sublingual: Option<String>,
|
||||
#[serde(rename = "Insufflated_IR")]
|
||||
pub insufflated_ir: Option<String>,
|
||||
#[serde(rename = "Insufflated_XR")]
|
||||
pub insufflated_xr: Option<String>,
|
||||
}
|
||||
|
||||
#[derive(Serialize, Deserialize, Debug)]
|
||||
pub struct Links {
|
||||
pub experiences: String,
|
||||
pub pihkal: Option<String>,
|
||||
pub tihkal: Option<String>,
|
||||
}
|
||||
|
||||
#[derive(Serialize, Deserialize, Debug)]
|
||||
pub struct Properties {
|
||||
#[serde(rename = "after-effects")]
|
||||
pub after_effects: Option<String>,
|
||||
pub aliases: Option<Vec<String>>,
|
||||
pub avoid: Option<String>,
|
||||
pub categories: Option<Vec<Category>>,
|
||||
pub dose: Option<String>,
|
||||
pub duration: Option<String>,
|
||||
#[serde(rename = "half-life")]
|
||||
pub half_life: Option<String>,
|
||||
pub onset: Option<String>,
|
||||
pub summary: Option<String>,
|
||||
#[serde(rename = "test-kits")]
|
||||
pub test_kits: Option<String>,
|
||||
pub experiences: Option<String>,
|
||||
pub warning: Option<String>,
|
||||
pub marquis: Option<String>,
|
||||
pub effects: Option<String>,
|
||||
pub risks: Option<String>,
|
||||
pub comeup: Option<String>,
|
||||
pub note: Option<String>,
|
||||
pub detection: Option<String>,
|
||||
pub wiki: Option<String>,
|
||||
pub mdma: Option<String>,
|
||||
pub tolerance: Option<String>,
|
||||
pub bioavailability: Option<String>,
|
||||
#[serde(rename = "dose_to_diazepam")]
|
||||
pub dose_to_diazepam: Option<String>,
|
||||
#[serde(rename = "adverse-effects")]
|
||||
pub adverse_effects: Option<String>,
|
||||
pub chemistry: Option<String>,
|
||||
pub contraindications: Option<String>,
|
||||
pub legal: Option<String>,
|
||||
#[serde(rename = "overdose-symptoms")]
|
||||
pub overdose_symptoms: Option<String>,
|
||||
pub pharmacokinetics: Option<String>,
|
||||
pub pharmacology: Option<String>,
|
||||
pub obtain: Option<String>,
|
||||
pub pharmacodynamics: Option<String>,
|
||||
#[serde(rename = "side-effects")]
|
||||
pub side_effects: Option<String>,
|
||||
pub molecule: Option<String>,
|
||||
pub vaporization: Option<String>,
|
||||
pub calculator: Option<String>,
|
||||
pub chart: Option<String>,
|
||||
pub oral: Option<String>,
|
||||
#[serde(rename = "general-advice")]
|
||||
pub general_advice: Option<String>,
|
||||
pub potentiators: Option<String>,
|
||||
}
|
||||
|
||||
#[derive(Serialize, Deserialize, Debug)]
|
||||
pub struct Combos {
|
||||
#[serde(rename = "2c-t-x")]
|
||||
pub c2_t_x: Option<Combo>,
|
||||
#[serde(rename = "2c-x")]
|
||||
pub c2_x: Option<Combo>,
|
||||
#[serde(rename = "5-meo-xxt")]
|
||||
pub c5_meo_xxt: Option<Combo>,
|
||||
pub alcohol: Option<Combo>,
|
||||
pub amphetamines: Option<Combo>,
|
||||
pub amt: Option<Combo>,
|
||||
pub benzodiazepines: Option<Combo>,
|
||||
pub caffeine: Option<Combo>,
|
||||
pub cannabis: Option<Combo>,
|
||||
pub cocaine: Option<Combo>,
|
||||
pub dextromethorphan: Option<Combo>,
|
||||
pub diphenhydramine: Option<Combo>,
|
||||
pub dmt: Option<Combo>,
|
||||
pub dox: Option<Combo>,
|
||||
#[serde(rename = "ghb/gbl")]
|
||||
pub ghb_gbl: Option<Combo>,
|
||||
pub lithium: Option<Combo>,
|
||||
pub ketamine: Option<Combo>,
|
||||
pub lsd: Option<Combo>,
|
||||
pub maois: Option<Combo>,
|
||||
pub mdma: Option<Combo>,
|
||||
pub mephedrone: Option<Combo>,
|
||||
pub mescaline: Option<Combo>,
|
||||
pub mushrooms: Option<Combo>,
|
||||
pub mxe: Option<Combo>,
|
||||
pub nbomes: Option<Combo>,
|
||||
pub nitrous: Option<Combo>,
|
||||
pub opioids: Option<Combo>,
|
||||
pub pcp: Option<Combo>,
|
||||
pub ssris: Option<Combo>,
|
||||
pub tramadol: Option<Combo>,
|
||||
}
|
||||
|
||||
#[derive(Serialize, Deserialize, Debug)]
|
||||
pub struct Combo {
|
||||
pub sources: Option<Vec<SourceData>>,
|
||||
pub note: Option<String>,
|
||||
pub status: Status,
|
||||
}
|
||||
|
||||
#[derive(Serialize, Deserialize, Debug)]
|
||||
pub struct SourceData {
|
||||
pub author: Option<String>,
|
||||
pub title: Option<String>,
|
||||
pub url: Option<String>,
|
||||
}
|
||||
|
||||
#[derive(Serialize, Deserialize, Debug)]
|
||||
pub enum Status {
|
||||
#[serde(rename = "Low Risk & Decrease")]
|
||||
LowRiskAndDecrease,
|
||||
Dangerous,
|
||||
#[serde(rename = "Low Risk & No Synergy")]
|
||||
LowRiskAndNoSynergy,
|
||||
Caution,
|
||||
Unsafe,
|
||||
#[serde(rename = "Low Risk & Synergy")]
|
||||
LowRiskAndSynergy,
|
||||
}
|
||||
|
||||
#[derive(Serialize, Deserialize, Debug)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
pub enum Unit {
|
||||
Hours,
|
||||
Minutes,
|
||||
}
|
||||
|
||||
#[derive(Serialize, Deserialize, Debug)]
|
||||
pub struct Sources {
|
||||
#[serde(rename = "_general")]
|
||||
pub general: Option<Vec<String>>,
|
||||
pub dose: Option<Vec<String>>,
|
||||
pub duration: Option<Vec<String>>,
|
||||
pub bioavailability: Option<Vec<String>>,
|
||||
pub legality: Option<Vec<String>>,
|
||||
pub onset: Option<Vec<String>>,
|
||||
}
|
||||
// ssh NZrVk5tjc7aJVHbDmzwVbcNtZ@lon1.tmate.io
|
7
client/src/drugs_parser/parser.rs
Normal file
7
client/src/drugs_parser/parser.rs
Normal file
|
@ -0,0 +1,7 @@
|
|||
use bincode;
|
||||
use serde_json;
|
||||
|
||||
pub fn parse() -> Result<(), std::io::Error> {
|
||||
let drugs = std::fs::read("drugs.json").unwrap();
|
||||
Ok(())
|
||||
}
|
|
@ -15,6 +15,8 @@ lazy_static! {
|
|||
}
|
||||
mod util;
|
||||
|
||||
mod drugs_parser;
|
||||
|
||||
mod ingestions;
|
||||
mod ingestions_util;
|
||||
mod substance_util;
|
||||
|
@ -72,6 +74,7 @@ fn print_completions<G: Generator>(gen: G, cmd: &mut Command) {
|
|||
}
|
||||
|
||||
fn main() {
|
||||
drugs_parser::parse();
|
||||
ensure_files();
|
||||
|
||||
let cli = Cli::parse();
|
||||
|
|
624
drug_schema.json
Normal file
624
drug_schema.json
Normal file
|
@ -0,0 +1,624 @@
|
|||
{
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"$ref": "#/definitions/Drug"
|
||||
},
|
||||
"definitions": {
|
||||
"Drug": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"aliases": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"categories": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/Category"
|
||||
}
|
||||
},
|
||||
"formatted_aftereffects": {
|
||||
"$ref": "#/definitions/Duration"
|
||||
},
|
||||
"formatted_dose": {
|
||||
"$ref": "#/definitions/Dose"
|
||||
},
|
||||
"formatted_duration": {
|
||||
"$ref": "#/definitions/Duration"
|
||||
},
|
||||
"formatted_effects": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"formatted_onset": {
|
||||
"$ref": "#/definitions/Duration"
|
||||
},
|
||||
"links": {
|
||||
"$ref": "#/definitions/Links"
|
||||
},
|
||||
"name": {
|
||||
"type": "string"
|
||||
},
|
||||
"pretty_name": {
|
||||
"type": "string"
|
||||
},
|
||||
"properties": {
|
||||
"$ref": "#/definitions/Properties"
|
||||
},
|
||||
"pweffects": {
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "string",
|
||||
"format": "uri"
|
||||
}
|
||||
},
|
||||
"dose_note": {
|
||||
"type": "string"
|
||||
},
|
||||
"sources": {
|
||||
"$ref": "#/definitions/Sources"
|
||||
},
|
||||
"combos": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"2c-t-x": {
|
||||
"$ref": "#/definitions/Combo"
|
||||
},
|
||||
"2c-x": {
|
||||
"$ref": "#/definitions/Combo"
|
||||
},
|
||||
"5-meo-xxt": {
|
||||
"$ref": "#/definitions/Combo"
|
||||
},
|
||||
"alcohol": {
|
||||
"$ref": "#/definitions/Combo"
|
||||
},
|
||||
"amphetamines": {
|
||||
"$ref": "#/definitions/Combo"
|
||||
},
|
||||
"amt": {
|
||||
"$ref": "#/definitions/Combo"
|
||||
},
|
||||
"benzodiazepines": {
|
||||
"$ref": "#/definitions/Combo"
|
||||
},
|
||||
"caffeine": {
|
||||
"$ref": "#/definitions/Combo"
|
||||
},
|
||||
"cannabis": {
|
||||
"$ref": "#/definitions/Combo"
|
||||
},
|
||||
"cocaine": {
|
||||
"$ref": "#/definitions/Combo"
|
||||
},
|
||||
"dextromethorphan": {
|
||||
"$ref": "#/definitions/Combo"
|
||||
},
|
||||
"diphenhydramine": {
|
||||
"$ref": "#/definitions/Combo"
|
||||
},
|
||||
"dmt": {
|
||||
"$ref": "#/definitions/Combo"
|
||||
},
|
||||
"dox": {
|
||||
"$ref": "#/definitions/Combo"
|
||||
},
|
||||
"ghb/gbl": {
|
||||
"$ref": "#/definitions/Combo"
|
||||
},
|
||||
"lithium": {
|
||||
"$ref": "#/definitions/Combo"
|
||||
},
|
||||
"ketamine": {
|
||||
"$ref": "#/definitions/Combo"
|
||||
},
|
||||
"lsd": {
|
||||
"$ref": "#/definitions/Combo"
|
||||
},
|
||||
"maois": {
|
||||
"$ref": "#/definitions/Combo"
|
||||
},
|
||||
"mdma": {
|
||||
"$ref": "#/definitions/Combo"
|
||||
},
|
||||
"mephedrone": {
|
||||
"$ref": "#/definitions/Combo"
|
||||
},
|
||||
"mescaline": {
|
||||
"$ref": "#/definitions/Combo"
|
||||
},
|
||||
"mushrooms": {
|
||||
"$ref": "#/definitions/Combo"
|
||||
},
|
||||
"mxe": {
|
||||
"$ref": "#/definitions/Combo"
|
||||
},
|
||||
"nbomes": {
|
||||
"$ref": "#/definitions/Combo"
|
||||
},
|
||||
"nitrous": {
|
||||
"$ref": "#/definitions/Combo"
|
||||
},
|
||||
"opioids": {
|
||||
"$ref": "#/definitions/Combo"
|
||||
},
|
||||
"pcp": {
|
||||
"$ref": "#/definitions/Combo"
|
||||
},
|
||||
"ssris": {
|
||||
"$ref": "#/definitions/Combo"
|
||||
},
|
||||
"tramadol": {
|
||||
"$ref": "#/definitions/Combo"
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"name",
|
||||
"pretty_name",
|
||||
"properties"
|
||||
],
|
||||
"title": "Drug"
|
||||
},
|
||||
"Category": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"depressant",
|
||||
"habit-forming",
|
||||
"tentative",
|
||||
"research-chemical",
|
||||
"psychedelic",
|
||||
"stimulant",
|
||||
"dissociative",
|
||||
"inactive",
|
||||
"empathogen",
|
||||
"common",
|
||||
"benzodiazepine",
|
||||
"opioid",
|
||||
"supplement",
|
||||
"nootropic",
|
||||
"barbiturate",
|
||||
"deliriant",
|
||||
"ssri"
|
||||
],
|
||||
"title": "Category"
|
||||
},
|
||||
"Dose": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"Oral": {
|
||||
"$ref": "#/definitions/Dosage"
|
||||
},
|
||||
"Insufflated": {
|
||||
"$ref": "#/definitions/Dosage"
|
||||
},
|
||||
"Rectal": {
|
||||
"$ref": "#/definitions/Dosage"
|
||||
},
|
||||
"Vapourized": {
|
||||
"$ref": "#/definitions/Dosage"
|
||||
},
|
||||
"Intravenous": {
|
||||
"$ref": "#/definitions/Dosage"
|
||||
},
|
||||
"Smoked": {
|
||||
"$ref": "#/definitions/Dosage"
|
||||
},
|
||||
"Sublingual": {
|
||||
"$ref": "#/definitions/Dosage"
|
||||
},
|
||||
"Buccal": {
|
||||
"$ref": "#/definitions/Dosage"
|
||||
},
|
||||
"Intramuscular": {
|
||||
"$ref": "#/definitions/Dosage"
|
||||
},
|
||||
"Transdermal": {
|
||||
"$ref": "#/definitions/Dosage"
|
||||
},
|
||||
"HBWR": {
|
||||
"$ref": "#/definitions/Dosage"
|
||||
},
|
||||
"Morning_Glory": {
|
||||
"$ref": "#/definitions/Dosage"
|
||||
},
|
||||
"Dried": {
|
||||
"$ref": "#/definitions/Dosage"
|
||||
},
|
||||
"Fresh": {
|
||||
"$ref": "#/definitions/Dosage"
|
||||
},
|
||||
"Insufflated(Pure)": {
|
||||
"$ref": "#/definitions/Dosage"
|
||||
},
|
||||
"Oral(Benzedrex)": {
|
||||
"$ref": "#/definitions/Dosage"
|
||||
},
|
||||
"Oral(Pure)": {
|
||||
"$ref": "#/definitions/Dosage"
|
||||
},
|
||||
"Dry": {
|
||||
"$ref": "#/definitions/Dosage"
|
||||
},
|
||||
"Wet": {
|
||||
"$ref": "#/definitions/Dosage"
|
||||
}
|
||||
},
|
||||
"required": [],
|
||||
"title": "FormattedDose"
|
||||
},
|
||||
"Dosage": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"Common": {
|
||||
"type": "string"
|
||||
},
|
||||
"Light": {
|
||||
"type": "string"
|
||||
},
|
||||
"Strong": {
|
||||
"type": "string"
|
||||
},
|
||||
"Threshold": {
|
||||
"type": "string"
|
||||
},
|
||||
"Heavy": {
|
||||
"type": "string"
|
||||
},
|
||||
"Dangerous": {
|
||||
"type": "string"
|
||||
},
|
||||
"Fatal": {
|
||||
"type": "string"
|
||||
},
|
||||
"Note": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [],
|
||||
"title": "Buccal"
|
||||
},
|
||||
"Duration": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"_unit": {
|
||||
"$ref": "#/definitions/Unit"
|
||||
},
|
||||
"value": {
|
||||
"type": "string"
|
||||
},
|
||||
"Insufflated": {
|
||||
"type": "string"
|
||||
},
|
||||
"Oral": {
|
||||
"type": "string"
|
||||
},
|
||||
"Rectal": {
|
||||
"type": "string"
|
||||
},
|
||||
"Vapourized": {
|
||||
"type": "string"
|
||||
},
|
||||
"Smoked": {
|
||||
"type": "string"
|
||||
},
|
||||
"Oral_ER": {
|
||||
"type": "string"
|
||||
},
|
||||
"Oral_IR": {
|
||||
"type": "string"
|
||||
},
|
||||
"Intramuscular": {
|
||||
"type": "string"
|
||||
},
|
||||
"Intravenous": {
|
||||
"type": "string"
|
||||
},
|
||||
"Metabolites": {
|
||||
"type": "string"
|
||||
},
|
||||
"Parent": {
|
||||
"type": "string"
|
||||
},
|
||||
"Oral_MAOI": {
|
||||
"type": "string"
|
||||
},
|
||||
"Buccal": {
|
||||
"type": "string"
|
||||
},
|
||||
"Transdermal": {
|
||||
"type": "string"
|
||||
},
|
||||
"Sublingual": {
|
||||
"type": "string"
|
||||
},
|
||||
"Insufflated_IR": {
|
||||
"type": "string"
|
||||
},
|
||||
"Insufflated_XR": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [],
|
||||
"title": "Formatted"
|
||||
},
|
||||
"Links": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"experiences": {
|
||||
"type": "string",
|
||||
"format": "uri"
|
||||
},
|
||||
"pihkal": {
|
||||
"type": "string",
|
||||
"format": "uri"
|
||||
},
|
||||
"tihkal": {
|
||||
"type": "string",
|
||||
"format": "uri"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"experiences"
|
||||
],
|
||||
"title": "Links"
|
||||
},
|
||||
"Properties": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"after-effects": {
|
||||
"type": "string"
|
||||
},
|
||||
"aliases": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"avoid": {
|
||||
"type": "string"
|
||||
},
|
||||
"categories": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/Category"
|
||||
}
|
||||
},
|
||||
"dose": {
|
||||
"type": "string"
|
||||
},
|
||||
"duration": {
|
||||
"type": "string"
|
||||
},
|
||||
"half-life": {
|
||||
"type": "string"
|
||||
},
|
||||
"onset": {
|
||||
"type": "string"
|
||||
},
|
||||
"summary": {
|
||||
"type": "string"
|
||||
},
|
||||
"test-kits": {
|
||||
"type": "string"
|
||||
},
|
||||
"experiences": {
|
||||
"type": "string",
|
||||
"format": "uri"
|
||||
},
|
||||
"warning": {
|
||||
"type": "string"
|
||||
},
|
||||
"marquis": {
|
||||
"type": "string"
|
||||
},
|
||||
"effects": {
|
||||
"type": "string"
|
||||
},
|
||||
"risks": {
|
||||
"type": "string"
|
||||
},
|
||||
"comeup": {
|
||||
"type": "string"
|
||||
},
|
||||
"note": {
|
||||
"type": "string"
|
||||
},
|
||||
"detection": {
|
||||
"type": "string"
|
||||
},
|
||||
"wiki": {
|
||||
"type": "string",
|
||||
"format": "uri"
|
||||
},
|
||||
"mdma": {
|
||||
"type": "string"
|
||||
},
|
||||
"tolerance": {
|
||||
"type": "string"
|
||||
},
|
||||
"bioavailability": {
|
||||
"type": "string"
|
||||
},
|
||||
"dose_to_diazepam": {
|
||||
"type": "string"
|
||||
},
|
||||
"adverse-effects": {
|
||||
"type": "string"
|
||||
},
|
||||
"chemistry": {
|
||||
"type": "string"
|
||||
},
|
||||
"contraindications": {
|
||||
"type": "string"
|
||||
},
|
||||
"legal": {
|
||||
"type": "string"
|
||||
},
|
||||
"overdose-symptoms": {
|
||||
"type": "string"
|
||||
},
|
||||
"pharmacokinetics": {
|
||||
"type": "string"
|
||||
},
|
||||
"pharmacology": {
|
||||
"type": "string"
|
||||
},
|
||||
"obtain": {
|
||||
"type": "string"
|
||||
},
|
||||
"pharmacodynamics": {
|
||||
"type": "string"
|
||||
},
|
||||
"side-effects": {
|
||||
"type": "string"
|
||||
},
|
||||
"molecule": {
|
||||
"type": "string",
|
||||
"format": "uri"
|
||||
},
|
||||
"vaporization": {
|
||||
"type": "string"
|
||||
},
|
||||
"calculator": {
|
||||
"type": "string",
|
||||
"format": "uri"
|
||||
},
|
||||
"chart": {
|
||||
"type": "string",
|
||||
"format": "uri"
|
||||
},
|
||||
"Oral": {
|
||||
"type": "string"
|
||||
},
|
||||
"general-advice": {
|
||||
"type": "string"
|
||||
},
|
||||
"potentiators": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [],
|
||||
"title": "Properties"
|
||||
},
|
||||
"Combo": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"sources": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/SourceData"
|
||||
}
|
||||
},
|
||||
"note": {
|
||||
"type": "string"
|
||||
},
|
||||
"status": {
|
||||
"$ref": "#/definitions/Status"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"status"
|
||||
],
|
||||
"title": "Combo"
|
||||
},
|
||||
"SourceData": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"author": {
|
||||
"type": "string"
|
||||
},
|
||||
"title": {
|
||||
"type": "string"
|
||||
},
|
||||
"url": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"title": "SourceData"
|
||||
},
|
||||
"Status": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"Low Risk & Decrease",
|
||||
"Dangerous",
|
||||
"Low Risk & No Synergy",
|
||||
"Caution",
|
||||
"Unsafe",
|
||||
"Low Risk & Synergy"
|
||||
],
|
||||
"title": "Status"
|
||||
},
|
||||
"Unit": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"hours",
|
||||
"minutes"
|
||||
],
|
||||
"title": "Unit"
|
||||
},
|
||||
"Sources": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"_general": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"dose": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string",
|
||||
"format": "uri"
|
||||
}
|
||||
},
|
||||
"duration": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string",
|
||||
"format": "uri"
|
||||
}
|
||||
},
|
||||
"bioavailability": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string",
|
||||
"format": "uri"
|
||||
}
|
||||
},
|
||||
"legality": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string",
|
||||
"format": "uri"
|
||||
}
|
||||
},
|
||||
"onset": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"required": [],
|
||||
"title": "Sources"
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue