summaryrefslogtreecommitdiff
path: root/ffxiv/lodestone-css-selectors-0.52.0
diff options
context:
space:
mode:
Diffstat (limited to 'ffxiv/lodestone-css-selectors-0.52.0')
-rw-r--r--ffxiv/lodestone-css-selectors-0.52.0/LICENSE24
-rw-r--r--ffxiv/lodestone-css-selectors-0.52.0/README.md26
-rw-r--r--ffxiv/lodestone-css-selectors-0.52.0/cwls/cwls.json9
-rw-r--r--ffxiv/lodestone-css-selectors-0.52.0/cwls/members.json51
-rw-r--r--ffxiv/lodestone-css-selectors-0.52.0/freecompany/focus.json131
-rw-r--r--ffxiv/lodestone-css-selectors-0.52.0/freecompany/freecompany.json80
-rw-r--r--ffxiv/lodestone-css-selectors-0.52.0/freecompany/members.json51
-rw-r--r--ffxiv/lodestone-css-selectors-0.52.0/freecompany/reputation.json41
-rw-r--r--ffxiv/lodestone-css-selectors-0.52.0/freecompany/seeking.json75
-rw-r--r--ffxiv/lodestone-css-selectors-0.52.0/linkshell/ls.json5
-rw-r--r--ffxiv/lodestone-css-selectors-0.52.0/linkshell/members.json51
-rw-r--r--ffxiv/lodestone-css-selectors-0.52.0/meta.json35
-rw-r--r--ffxiv/lodestone-css-selectors-0.52.0/profile/achievements.json45
-rw-r--r--ffxiv/lodestone-css-selectors-0.52.0/profile/attributes.json62
-rw-r--r--ffxiv/lodestone-css-selectors-0.52.0/profile/character.json110
-rw-r--r--ffxiv/lodestone-css-selectors-0.52.0/profile/classjob.json550
-rw-r--r--ffxiv/lodestone-css-selectors-0.52.0/profile/classjob_original.json398
-rw-r--r--ffxiv/lodestone-css-selectors-0.52.0/profile/gearset.json527
-rw-r--r--ffxiv/lodestone-css-selectors-0.52.0/profile/minion.json18
-rw-r--r--ffxiv/lodestone-css-selectors-0.52.0/profile/mount.json18
-rw-r--r--ffxiv/lodestone-css-selectors-0.52.0/pvpteam/members.json39
-rw-r--r--ffxiv/lodestone-css-selectors-0.52.0/pvpteam/pvpteam.json26
-rw-r--r--ffxiv/lodestone-css-selectors-0.52.0/search/character.json50
-rw-r--r--ffxiv/lodestone-css-selectors-0.52.0/search/cwls.json36
-rw-r--r--ffxiv/lodestone-css-selectors-0.52.0/search/freecompany.json69
-rw-r--r--ffxiv/lodestone-css-selectors-0.52.0/search/linkshell.json37
-rw-r--r--ffxiv/lodestone-css-selectors-0.52.0/search/pvpteam.json47
27 files changed, 2611 insertions, 0 deletions
diff --git a/ffxiv/lodestone-css-selectors-0.52.0/LICENSE b/ffxiv/lodestone-css-selectors-0.52.0/LICENSE
new file mode 100644
index 0000000..fdddb29
--- /dev/null
+++ b/ffxiv/lodestone-css-selectors-0.52.0/LICENSE
@@ -0,0 +1,24 @@
+This is free and unencumbered software released into the public domain.
+
+Anyone is free to copy, modify, publish, use, compile, sell, or
+distribute this software, either in source code form or as a compiled
+binary, for any purpose, commercial or non-commercial, and by any
+means.
+
+In jurisdictions that recognize copyright laws, the author or authors
+of this software dedicate any and all copyright interest in the
+software to the public domain. We make this dedication for the benefit
+of the public at large and to the detriment of our heirs and
+successors. We intend this dedication to be an overt act of
+relinquishment in perpetuity of all present and future rights to this
+software under copyright law.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+For more information, please refer to <https://unlicense.org>
diff --git a/ffxiv/lodestone-css-selectors-0.52.0/README.md b/ffxiv/lodestone-css-selectors-0.52.0/README.md
new file mode 100644
index 0000000..da1fd4b
--- /dev/null
+++ b/ffxiv/lodestone-css-selectors-0.52.0/README.md
@@ -0,0 +1,26 @@
+# lodestone-css-selectors
+CSS selectors for The Lodestone. These selectors are all made for non-browser clients; they may break in various browsers
+due to DOM elements being injected by the browser itself. Please test them in a parser before reporting any errors.
+
+## Character Profile
+Do note that in Firefox, some page elements are slightly different from in other browsers. Use no user agent or try the provided ones in `meta.json`.
+
+### Character info (`profile/character.json`)
+Basic character data is on the main profile page.
+
+### Attributes (`profile/attributes.json`)
+Attribute data is on the main profile page.
+
+### Gearset (`profile/gearset.json`)
+Gearset data is on the main profile page.
+
+### Classjobs (`profile/classjob.json`)
+Classjob data is on the `/class_job` endpoint.
+
+### Mounts/Minions (`profile/minion.json` and `profile/mount.json`)
+Mount and minion data are on their own `/mount` and `/minion` endpoints, and need to be scraped using a mobile user agent. With a desktop UA, the mount/minion names are
+injected into the page with AJAX, and separate requests need to be made to get every single one.
+
+### Achievements (`profile/achievements.json`)
+Achievements are on the `/achievement` endpoint. Use the list selector to get the list of achievements on the page, and then get their IDs from the `href` attribute
+of the link. Use the next button's selector to request the next page and scrape the next set of achievements until the href is `javascript:void(0);`.
diff --git a/ffxiv/lodestone-css-selectors-0.52.0/cwls/cwls.json b/ffxiv/lodestone-css-selectors-0.52.0/cwls/cwls.json
new file mode 100644
index 0000000..4c4b007
--- /dev/null
+++ b/ffxiv/lodestone-css-selectors-0.52.0/cwls/cwls.json
@@ -0,0 +1,9 @@
+{
+ "NAME": {
+ "selector": ".heading__linkshell__name",
+ "regex": "\\s*(?P<Name>\\S*)"
+ },
+ "DC": {
+ "selector": ".heading__cwls__dcname"
+ }
+} \ No newline at end of file
diff --git a/ffxiv/lodestone-css-selectors-0.52.0/cwls/members.json b/ffxiv/lodestone-css-selectors-0.52.0/cwls/members.json
new file mode 100644
index 0000000..05e7e41
--- /dev/null
+++ b/ffxiv/lodestone-css-selectors-0.52.0/cwls/members.json
@@ -0,0 +1,51 @@
+{
+ "ROOT": {
+ "selector": ".ldst__window"
+ },
+ "ENTRY": {
+ "ROOT": {
+ "selector": "div.entry",
+ "multiple": true
+ },
+ "AVATAR": {
+ "selector": ".entry__chara__face img",
+ "attribute": "src"
+ },
+ "ID": {
+ "selector": ".entry__link",
+ "attribute": "href",
+ "regex": "/lodestone/character/(?P<ID>\\d*)/"
+ },
+ "NAME": {
+ "selector": ".entry__name"
+ },
+ "RANK": {
+ "selector": ".entry__chara_info > .js__tooltip",
+ "attribute": "data-tooltip",
+ "regex": "/ (?P<RankName>.+)"
+ },
+ "RANK_ICON": {
+ "selector": ".entry__chara_info > .js__tooltip > img",
+ "attribute": "src"
+ },
+ "LINKSHELL_RANK": {
+ "selector": ".entry__chara_info__linkshell > span"
+ },
+ "LINKSHELL_RANK_ICON": {
+ "selector": ".entry__chara_info__linkshell > img",
+ "attribute": "src"
+ },
+ "SERVER": {
+ "selector": ".entry__world",
+ "regex": "(?P<World>\\w*)\\s+\\[(?P<DC>\\w*)\\]"
+ }
+ },
+ "PAGE_INFO": {
+ "selector": "ul.btn__pager:nth-child(5) > li:nth-child(3)",
+ "regex": "\\D*(?P<CurrentPage>\\d+)\\D*(?P<NumPages>\\d+)"
+ },
+ "LIST_NEXT_BUTTON": {
+ "selector": "ul.btn__pager:nth-child(5) > li:nth-child(4) > a:nth-child(1)",
+ "attribute": "href"
+ }
+}
diff --git a/ffxiv/lodestone-css-selectors-0.52.0/freecompany/focus.json b/ffxiv/lodestone-css-selectors-0.52.0/freecompany/focus.json
new file mode 100644
index 0000000..44850be
--- /dev/null
+++ b/ffxiv/lodestone-css-selectors-0.52.0/freecompany/focus.json
@@ -0,0 +1,131 @@
+{
+ "NOT_SPECIFIED": {
+ "selector": "p.freecompany__text:nth-child(7)"
+ },
+ "RP": {
+ "NAME": {
+ "selector": "ul.freecompany__focus_icon:nth-child(7) > li:nth-child(1) > p:nth-child(2)"
+ },
+ "ICON": {
+ "selector": "ul.freecompany__focus_icon:nth-child(7) > li:nth-child(1) > div:nth-child(1) > img:nth-child(1)",
+ "attribute": "src"
+ },
+ "STATUS": {
+ "selector": "ul.freecompany__focus_icon:nth-child(7) > li:nth-child(1)",
+ "attribute": "class",
+ "regex": "freecompany__focus_icon--(?P<Status>off)"
+ }
+ },
+ "LEVELING": {
+ "NAME": {
+ "selector": "ul.freecompany__focus_icon:nth-child(7) > li:nth-child(2) > p:nth-child(2)"
+ },
+ "ICON": {
+ "selector": "ul.freecompany__focus_icon:nth-child(7) > li:nth-child(3) > div:nth-child(1) > img:nth-child(1)",
+ "attribute": "src"
+ },
+ "STATUS": {
+ "selector": "ul.freecompany__focus_icon:nth-child(7) > li:nth-child(3)",
+ "attribute": "class",
+ "regex": "freecompany__focus_icon--(?P<Status>off)"
+ }
+ },
+ "CASUAL": {
+ "NAME": {
+ "selector": "ul.freecompany__focus_icon:nth-child(7) > li:nth-child(3) > p:nth-child(2)"
+ },
+ "ICON": {
+ "selector": "ul.freecompany__focus_icon:nth-child(7) > li:nth-child(3) > div:nth-child(1) > img:nth-child(1)",
+ "attribute": "src"
+ },
+ "STATUS": {
+ "selector": "ul.freecompany__focus_icon:nth-child(7) > li:nth-child(3)",
+ "attribute": "class",
+ "regex": "freecompany__focus_icon--(?P<Status>off)"
+ }
+ },
+ "HARDCORE": {
+ "NAME": {
+ "selector": "ul.freecompany__focus_icon:nth-child(7) > li:nth-child(4) > p:nth-child(2)"
+ },
+ "ICON": {
+ "selector": "ul.freecompany__focus_icon:nth-child(7) > li:nth-child(4) > div:nth-child(1) > img:nth-child(1)",
+ "attribute": "src"
+ },
+ "STATUS": {
+ "selector": "ul.freecompany__focus_icon:nth-child(7) > li:nth-child(4)",
+ "attribute": "class",
+ "regex": "freecompany__focus_icon--(?P<Status>off)"
+ }
+ },
+ "DUNGEONS": {
+ "NAME": {
+ "selector": "ul.freecompany__focus_icon:nth-child(7) > li:nth-child(5) > p:nth-child(2)"
+ },
+ "ICON": {
+ "selector": "ul.freecompany__focus_icon:nth-child(7) > li:nth-child(5) > div:nth-child(1) > img:nth-child(1)",
+ "attribute": "src"
+ },
+ "STATUS": {
+ "selector": "ul.freecompany__focus_icon:nth-child(7) > li:nth-child(5)",
+ "attribute": "class",
+ "regex": "freecompany__focus_icon--(?P<Status>off)"
+ }
+ },
+ "GUILDHESTS": {
+ "NAME": {
+ "selector": "ul.freecompany__focus_icon:nth-child(7) > li:nth-child(6) > p:nth-child(2)"
+ },
+ "ICON": {
+ "selector": "ul.freecompany__focus_icon:nth-child(7) > li:nth-child(6) > div:nth-child(1) > img:nth-child(1)",
+ "attribute": "src"
+ },
+ "STATUS": {
+ "selector": "ul.freecompany__focus_icon:nth-child(7) > li:nth-child(6)",
+ "attribute": "class",
+ "regex": "freecompany__focus_icon--(?P<Status>off)"
+ }
+ },
+ "TRIALS": {
+ "NAME": {
+ "selector": "ul.freecompany__focus_icon:nth-child(7) > li:nth-child(7) > p:nth-child(2)"
+ },
+ "ICON": {
+ "selector": "ul.freecompany__focus_icon:nth-child(7) > li:nth-child(7) > div:nth-child(1) > img:nth-child(1)",
+ "attribute": "src"
+ },
+ "STATUS": {
+ "selector": "ul.freecompany__focus_icon:nth-child(7) > li:nth-child(7)",
+ "attribute": "class",
+ "regex": "freecompany__focus_icon--(?P<Status>off)"
+ }
+ },
+ "RAIDS": {
+ "NAME": {
+ "selector": "ul.freecompany__focus_icon:nth-child(7) > li:nth-child(8) > p:nth-child(2)"
+ },
+ "ICON": {
+ "selector": "ul.freecompany__focus_icon:nth-child(7) > li:nth-child(8) > div:nth-child(1) > img:nth-child(1)",
+ "attribute": "src"
+ },
+ "STATUS": {
+ "selector": "ul.freecompany__focus_icon:nth-child(7) > li:nth-child(8)",
+ "attribute": "class",
+ "regex": "freecompany__focus_icon--(?P<Status>off)"
+ }
+ },
+ "PVP": {
+ "NAME": {
+ "selector": "ul.freecompany__focus_icon:nth-child(7) > li:nth-child(9) > p:nth-child(2)"
+ },
+ "ICON": {
+ "selector": "ul.freecompany__focus_icon:nth-child(7) > li:nth-child(9) > div:nth-child(1) > img:nth-child(1)",
+ "attribute": "src"
+ },
+ "STATUS": {
+ "selector": "ul.freecompany__focus_icon:nth-child(7) > li:nth-child(9)",
+ "attribute": "class",
+ "regex": "freecompany__focus_icon--(?P<Status>off)"
+ }
+ }
+} \ No newline at end of file
diff --git a/ffxiv/lodestone-css-selectors-0.52.0/freecompany/freecompany.json b/ffxiv/lodestone-css-selectors-0.52.0/freecompany/freecompany.json
new file mode 100644
index 0000000..63cc831
--- /dev/null
+++ b/ffxiv/lodestone-css-selectors-0.52.0/freecompany/freecompany.json
@@ -0,0 +1,80 @@
+{
+ "ACTIVE_STATE": {
+ "selector": "p.freecompany__text:nth-child(3)",
+ "regex": "\\s*(?P<ActiveState>\\S+\\s?\\S*)"
+ },
+ "ACTIVE_MEMBER_COUNT": {
+ "selector": "p.freecompany__text:nth-child(12)"
+ },
+ "CREST_LAYERS": {
+ "BOTTOM": {
+ "selector": "div.ldst__window:nth-child(1) > div:nth-child(2) > a:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > img:nth-child(1)",
+ "attribute": "src"
+ },
+ "MIDDLE": {
+ "selector": "div.ldst__window:nth-child(1) > div:nth-child(2) > a:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > img:nth-child(2)",
+ "attribute": "src"
+ },
+ "TOP": {
+ "selector": "div.ldst__window:nth-child(1) > div:nth-child(2) > a:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > img:nth-child(3)",
+ "attribute": "src"
+ }
+ },
+ "ESTATE": {
+ "NO_ESTATE": {
+ "selector": ".freecompany__estate__none"
+ },
+ "GREETING": {
+ "selector": ".freecompany__estate__greeting"
+ },
+ "NAME": {
+ "selector": ".freecompany__estate__name"
+ },
+ "PLOT": {
+ "selector": ".freecompany__estate__text"
+ }
+ },
+ "FORMED": {
+ "selector": "p.freecompany__text:nth-child(10) > script",
+ "regex": ".*ldst_strftime\\((?P<Timestamp>\\d*)"
+ },
+ "GRAND_COMPANY": {
+ "selector": "div.ldst__window:nth-child(1) > div:nth-child(2) > a:nth-child(1) > div:nth-child(2) > p:nth-child(1)",
+ "regex": "(?P<Name>\\w.*)<(?P<Rank>\\w*)>"
+ },
+ "ID": {
+ "selector": "div.ldst__window:nth-child(1) > div:nth-child(2) > a:nth-child(1)",
+ "attribute": "href",
+ "regex": "/lodestone/freecompany/(?P<ID>\\d*)/"
+ },
+ "NAME": {
+ "selector": ".freecompany__text__name"
+ },
+ "RANK": {
+ "selector": "p.freecompany__text:nth-child(14)"
+ },
+ "RANKING": {
+ "WEEKLY": {
+ "selector": ".character__ranking__data tr:nth-child(1) > th:nth-child(1)",
+ "regex": "Weekly Rank:(?P<Rank>.+) \\(previous week\\)"
+ },
+ "MONTHLY": {
+ "selector": ".character__ranking__data tr:nth-child(2) > th:nth-child(1)",
+ "regex": "Monthly Rank:(?P<Rank>.*) \\(previous month\\)"
+ }
+ },
+ "RECRUITMENT": {
+ "selector": "p.freecompany__text:nth-child(5)",
+ "regex": "\\s*(?P<ActiveState>\\S*)"
+ },
+ "SERVER": {
+ "selector": "div.ldst__window:nth-child(1) > div:nth-child(2) > a:nth-child(1) > div:nth-child(2) > p:nth-child(3)",
+ "regex": "(?P<World>\\w*)\\s+\\[(?P<DC>\\w*)\\]"
+ },
+ "SLOGAN": {
+ "selector": ".freecompany__text__message"
+ },
+ "TAG": {
+ "selector": ".freecompany__text.freecompany__text__tag"
+ }
+}
diff --git a/ffxiv/lodestone-css-selectors-0.52.0/freecompany/members.json b/ffxiv/lodestone-css-selectors-0.52.0/freecompany/members.json
new file mode 100644
index 0000000..aa7c897
--- /dev/null
+++ b/ffxiv/lodestone-css-selectors-0.52.0/freecompany/members.json
@@ -0,0 +1,51 @@
+{
+ "ROOT": {
+ "selector": ".ldst__window"
+ },
+ "ENTRY": {
+ "ROOT": {
+ "selector": "li.entry",
+ "multiple": true
+ },
+ "AVATAR": {
+ "selector": ".entry__chara__face > img",
+ "attribute": "src"
+ },
+ "ID": {
+ "selector": ".entry__bg",
+ "attribute": "href",
+ "regex": "/lodestone/character/(?P<ID>\\d*)/"
+ },
+ "NAME": {
+ "selector": ".entry__name"
+ },
+ "FC_RANK": {
+ "selector": ".entry__freecompany__info > li:nth-child(1) > span"
+ },
+ "FC_RANK_ICON": {
+ "selector": ".entry__freecompany__info > li:nth-child(1) > img",
+ "attribute": "src"
+ },
+ "RANK": {
+ "selector": ".entry__freecompany__info > .js__tooltip",
+ "attribute": "data-tooltip",
+ "regex": "/ (?P<RankName>.+)"
+ },
+ "RANK_ICON": {
+ "selector": ".entry__freecompany__info > .js__tooltip > img",
+ "attribute": "src"
+ },
+ "SERVER": {
+ "selector": ".entry__world",
+ "regex": "(?P<World>\\w*)\\s+\\[(?P<DC>\\w*)\\]"
+ }
+ },
+ "PAGE_INFO": {
+ "selector": "ul.btn__pager:nth-child(4) > li:nth-child(3)",
+ "regex": "\\D*(?P<CurrentPage>\\d+)\\D*(?P<NumPages>\\d+)"
+ },
+ "LIST_NEXT_BUTTON": {
+ "selector": "ul.btn__pager:nth-child(4) > li:nth-child(4) > a:nth-child(1)",
+ "attribute": "href"
+ }
+}
diff --git a/ffxiv/lodestone-css-selectors-0.52.0/freecompany/reputation.json b/ffxiv/lodestone-css-selectors-0.52.0/freecompany/reputation.json
new file mode 100644
index 0000000..c88df40
--- /dev/null
+++ b/ffxiv/lodestone-css-selectors-0.52.0/freecompany/reputation.json
@@ -0,0 +1,41 @@
+{
+ "MAELSTROM": {
+ "NAME": {
+ "selector": "div.freecompany__reputation:nth-child(16) > div:nth-child(2) > p:nth-child(1)"
+ },
+ "PROGRESS": {
+ "selector": "div.freecompany__reputation:nth-child(16) > div:nth-child(2) > div:nth-child(3) > div:nth-child(1)",
+ "attribute": "style",
+ "regex": "width:(?P<Progress>\\d+)%;"
+ },
+ "RANK": {
+ "selector": "div.freecompany__reputation:nth-child(16) > div:nth-child(2) > p:nth-child(2)"
+ }
+ },
+ "ADDERS": {
+ "NAME": {
+ "selector": "div.freecompany__reputation:nth-child(17) > div:nth-child(2) > p:nth-child(1)"
+ },
+ "PROGRESS": {
+ "selector": "div.freecompany__reputation:nth-child(17) > div:nth-child(2) > div:nth-child(3) > div:nth-child(1)",
+ "attribute": "style",
+ "regex": "width:(?P<Progress>\\d+)%;"
+ },
+ "RANK": {
+ "selector": "div.freecompany__reputation:nth-child(17) > div:nth-child(2) > p:nth-child(2)"
+ }
+ },
+ "FLAMES": {
+ "NAME": {
+ "selector": "div.freecompany__reputation:nth-child(18) > div:nth-child(2) > p:nth-child(1)"
+ },
+ "PROGRESS": {
+ "selector": "div.freecompany__reputation:nth-child(18) > div:nth-child(2) > div:nth-child(3) > div:nth-child(1)",
+ "attribute": "style",
+ "regex": "width:(?P<Progress>\\d+)%;"
+ },
+ "RANK": {
+ "selector": "div.freecompany__reputation:nth-child(18) > div:nth-child(2) > p:nth-child(2)"
+ }
+ }
+} \ No newline at end of file
diff --git a/ffxiv/lodestone-css-selectors-0.52.0/freecompany/seeking.json b/ffxiv/lodestone-css-selectors-0.52.0/freecompany/seeking.json
new file mode 100644
index 0000000..164c01a
--- /dev/null
+++ b/ffxiv/lodestone-css-selectors-0.52.0/freecompany/seeking.json
@@ -0,0 +1,75 @@
+{
+ "NOT_SPECIFIED": {
+ "selector": "p.parts__text:nth-child(9)"
+ },
+ "TANK": {
+ "NAME": {
+ "selector": "ul.freecompany__focus_icon:nth-child(9) > li:nth-child(1) > p:nth-child(2)"
+ },
+ "STATUS": {
+ "selector": "ul.freecompany__focus_icon:nth-child(9) > li:nth-child(1)",
+ "attribute": "class",
+ "regex": "freecompany__focus_icon--(?P<Status>off)"
+ },
+ "ICON": {
+ "selector": "ul.freecompany__focus_icon:nth-child(9) > li:nth-child(1) > div:nth-child(1) > img:nth-child(1)",
+ "attribute": "src"
+ }
+ },
+ "HEALER": {
+ "NAME": {
+ "selector": "ul.freecompany__focus_icon:nth-child(9) > li:nth-child(2) > p:nth-child(2)"
+ },
+ "STATUS": {
+ "selector": "ul.freecompany__focus_icon:nth-child(9) > li:nth-child(2)",
+ "attribute": "class",
+ "regex": "freecompany__focus_icon--(?P<Status>off)"
+ },
+ "ICON": {
+ "selector": "ul.freecompany__focus_icon:nth-child(9) > li:nth-child(2) > div:nth-child(1) > img:nth-child(1)",
+ "attribute": "src"
+ }
+ },
+ "DPS": {
+ "NAME": {
+ "selector": "ul.freecompany__focus_icon:nth-child(9) > li:nth-child(3) > p:nth-child(2)"
+ },
+ "STATUS": {
+ "selector": "ul.freecompany__focus_icon:nth-child(9) > li:nth-child(3)",
+ "attribute": "class",
+ "regex": "freecompany__focus_icon--(?P<Status>off)"
+ },
+ "ICON": {
+ "selector": "ul.freecompany__focus_icon:nth-child(9) > li:nth-child(3) > div:nth-child(1) > img:nth-child(1)",
+ "attribute": "src"
+ }
+ },
+ "CRAFTER": {
+ "NAME": {
+ "selector": "ul.freecompany__focus_icon:nth-child(9) > li:nth-child(4) > p:nth-child(2)"
+ },
+ "STATUS": {
+ "selector": "ul.freecompany__focus_icon:nth-child(9) > li:nth-child(4)",
+ "attribute": "class",
+ "regex": "freecompany__focus_icon--(?P<Status>off)"
+ },
+ "ICON": {
+ "selector": "ul.freecompany__focus_icon:nth-child(9) > li:nth-child(4) > div:nth-child(1) > img:nth-child(1)",
+ "attribute": "src"
+ }
+ },
+ "GATHERER": {
+ "NAME": {
+ "selector": "ul.freecompany__focus_icon:nth-child(9) > li:nth-child(5) > p:nth-child(2)"
+ },
+ "STATUS": {
+ "selector": "ul.freecompany__focus_icon:nth-child(9) > li:nth-child(5)",
+ "attribute": "class",
+ "regex": "freecompany__focus_icon--(?P<Status>off)"
+ },
+ "ICON": {
+ "selector": "ul.freecompany__focus_icon:nth-child(9) > li:nth-child(5) > div:nth-child(1) > img:nth-child(1)",
+ "attribute": "src"
+ }
+ }
+} \ No newline at end of file
diff --git a/ffxiv/lodestone-css-selectors-0.52.0/linkshell/ls.json b/ffxiv/lodestone-css-selectors-0.52.0/linkshell/ls.json
new file mode 100644
index 0000000..c33ccb5
--- /dev/null
+++ b/ffxiv/lodestone-css-selectors-0.52.0/linkshell/ls.json
@@ -0,0 +1,5 @@
+{
+ "NAME": {
+ "selector": ".heading__linkshell__name"
+ }
+} \ No newline at end of file
diff --git a/ffxiv/lodestone-css-selectors-0.52.0/linkshell/members.json b/ffxiv/lodestone-css-selectors-0.52.0/linkshell/members.json
new file mode 100644
index 0000000..05e7e41
--- /dev/null
+++ b/ffxiv/lodestone-css-selectors-0.52.0/linkshell/members.json
@@ -0,0 +1,51 @@
+{
+ "ROOT": {
+ "selector": ".ldst__window"
+ },
+ "ENTRY": {
+ "ROOT": {
+ "selector": "div.entry",
+ "multiple": true
+ },
+ "AVATAR": {
+ "selector": ".entry__chara__face img",
+ "attribute": "src"
+ },
+ "ID": {
+ "selector": ".entry__link",
+ "attribute": "href",
+ "regex": "/lodestone/character/(?P<ID>\\d*)/"
+ },
+ "NAME": {
+ "selector": ".entry__name"
+ },
+ "RANK": {
+ "selector": ".entry__chara_info > .js__tooltip",
+ "attribute": "data-tooltip",
+ "regex": "/ (?P<RankName>.+)"
+ },
+ "RANK_ICON": {
+ "selector": ".entry__chara_info > .js__tooltip > img",
+ "attribute": "src"
+ },
+ "LINKSHELL_RANK": {
+ "selector": ".entry__chara_info__linkshell > span"
+ },
+ "LINKSHELL_RANK_ICON": {
+ "selector": ".entry__chara_info__linkshell > img",
+ "attribute": "src"
+ },
+ "SERVER": {
+ "selector": ".entry__world",
+ "regex": "(?P<World>\\w*)\\s+\\[(?P<DC>\\w*)\\]"
+ }
+ },
+ "PAGE_INFO": {
+ "selector": "ul.btn__pager:nth-child(5) > li:nth-child(3)",
+ "regex": "\\D*(?P<CurrentPage>\\d+)\\D*(?P<NumPages>\\d+)"
+ },
+ "LIST_NEXT_BUTTON": {
+ "selector": "ul.btn__pager:nth-child(5) > li:nth-child(4) > a:nth-child(1)",
+ "attribute": "href"
+ }
+}
diff --git a/ffxiv/lodestone-css-selectors-0.52.0/meta.json b/ffxiv/lodestone-css-selectors-0.52.0/meta.json
new file mode 100644
index 0000000..4b40bd8
--- /dev/null
+++ b/ffxiv/lodestone-css-selectors-0.52.0/meta.json
@@ -0,0 +1,35 @@
+{
+ "version": "0.45.0",
+ "userAgentDesktop": "curl/7.73.0",
+ "userAgentMobile": "Mozilla/5.0 (iPhone; CPU OS 10_15_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1.1 Mobile/14E304 Safari/605.1.15",
+ "applicableUris": {
+ "freecompany/focus.json": "https://%s.finalfantasyxiv.com/lodestone/freecompany/%s/",
+ "freecompany/freecompany.json": "https://%s.finalfantasyxiv.com/lodestone/freecompany/%s/",
+ "freecompany/members.json": "https://%s.finalfantasyxiv.com/lodestone/freecompany/%s/member/",
+ "freecompany/reputation.json": "https://%s.finalfantasyxiv.com/lodestone/freecompany/%s/",
+ "freecompany/seeking.json": "https://%s.finalfantasyxiv.com/lodestone/freecompany/%s/",
+
+ "cwls/cwls.json": "https://%s.finalfantasyxiv.com/lodestone/crossworld_linkshell/%s/",
+ "cwls/members.json": "https://%s.finalfantasyxiv.com/lodestone/crossworld_linkshell/%s/",
+
+ "linkshell/ls.json": "https://%s.finalfantasyxiv.com/lodestone/linkshell/%s/",
+ "linkshell/members.json": "https://%s.finalfantasyxiv.com/lodestone/linkshell/%s/",
+
+ "profile/achievements.json": "https://%s.finalfantasyxiv.com/lodestone/character/%d/achievement/",
+ "profile/attributes.json": "https://%s.finalfantasyxiv.com/lodestone/character/%d/",
+ "profile/character.json": "https://%s.finalfantasyxiv.com/lodestone/character/%d/",
+ "profile/classjob.json": "https://%s.finalfantasyxiv.com/lodestone/character/%d/class_job/",
+ "profile/gearset.json": "https://%s.finalfantasyxiv.com/lodestone/character/%d/",
+ "profile/minion.json": "https://%s.finalfantasyxiv.com/lodestone/character/%d/minion/",
+ "profile/mount.json": "https://%s.finalfantasyxiv.com/lodestone/character/%d/mount/",
+
+ "pvpteam/members.json": "https://%s.finalfantasyxiv.com/lodestone/pvpteam/%s/",
+ "pvpteam/pvpteam.json": "https://%s.finalfantasyxiv.com/lodestone/pvpteam/%s/",
+
+ "search/character.json": "https://%s.finalfantasyxiv.com/lodestone/character/",
+ "search/cwls.json": "https://%s.finalfantasyxiv.com/lodestone/crossworld_linkshell/",
+ "search/freecompany.json": "https://%s.finalfantasyxiv.com/lodestone/freecompany/",
+ "search/linkshell.json": "https://%s.finalfantasyxiv.com/lodestone/linkshell/",
+ "search/pvpteam.json": "https://%s.finalfantasyxiv.com/lodestone/pvpteam/"
+ }
+}
diff --git a/ffxiv/lodestone-css-selectors-0.52.0/profile/achievements.json b/ffxiv/lodestone-css-selectors-0.52.0/profile/achievements.json
new file mode 100644
index 0000000..5db2e02
--- /dev/null
+++ b/ffxiv/lodestone-css-selectors-0.52.0/profile/achievements.json
@@ -0,0 +1,45 @@
+{
+ "ROOT": {
+ "selector": ".ldst__achievement"
+ },
+ "ENTRY": {
+ "ROOT": {
+ "selector": ".entry",
+ "multiple": true
+ },
+ "NAME": {
+ "selector": ".entry__activity__txt",
+ "regex": "(?P<NameEU>.*)"
+ },
+ "ID": {
+ "selector": ".entry__achievement",
+ "attribute": "href",
+ "regex": "/lodestone/character/\\d*/achievement/detail/(?P<ID>\\d*)/"
+ },
+ "TIME": {
+ "selector": ".entry__activity__time > script",
+ "regex": ".*ldst_strftime\\((?P<Timestamp>\\d*)"
+ }
+ },
+ "PAGE_INFO": {
+ "selector": "ul.btn__pager:nth-child(2) > li:nth-child(3)",
+ "regex": "\\D*(?P<CurrentPage>\\d+)\\D*(?P<NumPages>\\d+)"
+ },
+ "LIST_NEXT_BUTTON": {
+ "selector": "ul.btn__pager:nth-child(2) > li:nth-child(4) > a:nth-child(1)",
+ "attribute": "href"
+ },
+ "NO_RESULTS_FOUND": {
+ "selector": ".parts__zero"
+ },
+ "TOTAL_ACHIEVEMENTS": {
+ "selector": ".parts__total",
+ "regex": "(?P<TotalAchievements>[0-9]*) \\D+"
+ },
+ "ACHIEVEMENT_POINTS": {
+ "selector": ".achievement__point"
+ },
+ "ACTIVITY_DESCRIPTION": {
+ "selector": ".entry__activity__txt"
+ }
+}
diff --git a/ffxiv/lodestone-css-selectors-0.52.0/profile/attributes.json b/ffxiv/lodestone-css-selectors-0.52.0/profile/attributes.json
new file mode 100644
index 0000000..c031c20
--- /dev/null
+++ b/ffxiv/lodestone-css-selectors-0.52.0/profile/attributes.json
@@ -0,0 +1,62 @@
+{
+ "STRENGTH": {
+ "selector": "table.character__param__list:nth-child(2) tr:nth-child(1) > td:nth-child(2)"
+ },
+ "DEXTERITY": {
+ "selector": "table.character__param__list:nth-child(2) tr:nth-child(2) > td:nth-child(2)"
+ },
+ "VITALITY": {
+ "selector": "table.character__param__list:nth-child(2) tr:nth-child(3) > td:nth-child(2)"
+ },
+ "INTELLIGENCE": {
+ "selector": "table.character__param__list:nth-child(2) tr:nth-child(4) > td:nth-child(2)"
+ },
+ "MIND": {
+ "selector": "table.character__param__list:nth-child(2) tr:nth-child(5) > td:nth-child(2)"
+ },
+ "CRITICAL_HIT_RATE": {
+ "selector": "table.character__param__list:nth-child(4) tr:nth-child(1) > td:nth-child(2)"
+ },
+ "DETERMINATION": {
+ "selector": "table.character__param__list:nth-child(4) tr:nth-child(2) > td:nth-child(2)"
+ },
+ "DIRECT_HIT_RATE": {
+ "selector": "table.character__param__list:nth-child(4) tr:nth-child(3) > td:nth-child(2)"
+ },
+ "DEFENSE": {
+ "selector": "table.character__param__list:nth-child(6) tr:nth-child(1) > td:nth-child(2)"
+ },
+ "MAGIC_DEFENSE": {
+ "selector": "table.character__param__list:nth-child(6) tr:nth-child(2) > td:nth-child(2)"
+ },
+ "ATTACK_POWER": {
+ "selector": "table.character__param__list:nth-child(8) tr:nth-child(1) > td:nth-child(2)"
+ },
+ "SKILL_SPEED": {
+ "selector": "table.character__param__list:nth-child(8) tr:nth-child(2) > td:nth-child(2)"
+ },
+ "ATTACK_MAGIC_POTENCY": {
+ "selector": "table.character__param__list:nth-child(10) tr:nth-child(1) > td:nth-child(2)"
+ },
+ "HEALING_MAGIC_POTENCY": {
+ "selector": "table.character__param__list:nth-child(10) tr:nth-child(2) > td:nth-child(2)"
+ },
+ "SPELL_SPEED": {
+ "selector": "table.character__param__list:nth-child(10) tr:nth-child(3) > td:nth-child(2)"
+ },
+ "TENACITY": {
+ "selector": "table.character__param__list:nth-child(12) tr:nth-child(1) > td:nth-child(2)"
+ },
+ "PIETY": {
+ "selector": "table.character__param__list:nth-child(12) tr:nth-child(2) > td:nth-child(2)"
+ },
+ "HP": {
+ "selector": ".character__param > ul:nth-child(1) > li:nth-child(1) > div:nth-child(1) > span:nth-child(2)"
+ },
+ "MP_GP_CP": {
+ "selector": ".character__param > ul:nth-child(1) > li:nth-child(2) > div:nth-child(1) > span:nth-child(2)"
+ },
+ "MP_GP_CP_PARAMETER_NAME": {
+ "selector": ".character__param > ul > li:nth-child(2) .character__param__text"
+ }
+}
diff --git a/ffxiv/lodestone-css-selectors-0.52.0/profile/character.json b/ffxiv/lodestone-css-selectors-0.52.0/profile/character.json
new file mode 100644
index 0000000..6d2ab92
--- /dev/null
+++ b/ffxiv/lodestone-css-selectors-0.52.0/profile/character.json
@@ -0,0 +1,110 @@
+{
+ "ACTIVE_CLASSJOB": {
+ "selector": ".character__class_icon > img:nth-child(1)",
+ "attribute": "src"
+ },
+ "ACTIVE_CLASSJOB_LEVEL": {
+ "selector": ".character__class__data > p:nth-child(1)",
+ "regex": "LEVEL (?P<Level>\\d*)"
+ },
+ "AVATAR": {
+ "selector": ".frame__chara__face > img:nth-child(1)",
+ "attribute": "src"
+ },
+ "BIO": {
+ "selector": ".character__selfintroduction"
+ },
+ "CLASSJOB_ICONS": {
+ "ROOT": {
+ "selector": "li",
+ "multiple": true
+ }
+ },
+ "FREE_COMPANY": {
+ "NAME": {
+ "selector": ".character__freecompany__name > h4:nth-child(2)"
+ },
+ "ICON_LAYERS": {
+ "BOTTOM": {
+ "selector": "div.character__freecompany__crest > div > img:nth-child(1)",
+ "attribute": "src"
+ },
+ "MIDDLE": {
+ "selector": "div.character__freecompany__crest > div > img:nth-child(1)",
+ "attribute": "src"
+ },
+ "TOP": {
+ "selector": "div.character__freecompany__crest > div > img:nth-child(1)",
+ "attribute": "src"
+ }
+ }
+ },
+ "GRAND_COMPANY": {
+ "selector": "div.character-block:nth-child(4) > div:nth-child(2) > p:nth-child(2)",
+ "regex": "(?P<Name>\\S*) \/ (?P<Rank>.*)"
+ },
+ "GUARDIAN_DEITY": {
+ "NAME": {
+ "selector": "p.character-block__name:nth-child(4)"
+ },
+ "ICON": {
+ "selector": "#character > div.character__content.selected > div.character__profile.clearfix > div.character__profile__data > div:nth-child(1) > div > div:nth-child(2) > img",
+ "attribute": "src"
+ }
+ },
+ "GENDER": {
+ "selector": "p.character-block__name:nth-child(2)",
+ "regex": "(.$)"
+ },
+ "NAME": {
+ "selector": "div.frame__chara__box:nth-child(2) > .frame__chara__name"
+ },
+ "NAMEDAY": {
+ "selector": ".character-block__birth"
+ },
+ "PORTRAIT": {
+ "selector": ".js__image_popup > img:nth-child(1)",
+ "attribute": "src"
+ },
+ "PVP_TEAM": {
+ "NAME": {
+ "selector": ".character__pvpteam__name > h4:nth-child(2) > a:nth-child(1)",
+ "attribute": "href",
+ "regex": "/lodestone/pvpteam/(?P<ID>.+)/"
+ },
+ "ICON_LAYERS": {
+ "BOTTOM": {
+ "selector": ".character__pvpteam__crest__image img:nth-child(1)",
+ "attribute": "src"
+ },
+ "MIDDLE": {
+ "selector": ".character__pvpteam__crest__image img:nth-child(2)",
+ "attribute": "src"
+ },
+ "TOP": {
+ "selector": ".character__pvpteam__crest__image img:nth-child(3)",
+ "attribute": "src"
+ }
+ }
+ },
+ "RACE_CLAN_GENDER": {
+ "selector": "div.character-block:nth-child(1) > div:nth-child(2) > p:nth-child(2)",
+ "regex": "(?P<Race>.*)(?P<Tribe>.*) \\/ (?P<Gender>.)"
+ },
+ "SERVER": {
+ "selector": "p.frame__chara__world:last-of-type",
+ "regex": "(?P<World>\\w*)\\s+\\[(?P<DC>\\w*)\\]"
+ },
+ "TITLE": {
+ "selector": ".frame__chara__title"
+ },
+ "TOWN": {
+ "NAME": {
+ "selector": "div.character-block:nth-child(3) > div:nth-child(2) > p:nth-child(2)"
+ },
+ "ICON": {
+ "selector": "#character > div.character__content.selected > div.character__profile.clearfix > div.character__profile__data > div:nth-child(1) > div > div:nth-child(3) > img",
+ "attribute": "src"
+ }
+ }
+}
diff --git a/ffxiv/lodestone-css-selectors-0.52.0/profile/classjob.json b/ffxiv/lodestone-css-selectors-0.52.0/profile/classjob.json
new file mode 100644
index 0000000..9a0c80a
--- /dev/null
+++ b/ffxiv/lodestone-css-selectors-0.52.0/profile/classjob.json
@@ -0,0 +1,550 @@
+{
+ "BOZJA": {
+ "LEVEL": {
+ "selector": "div.character__content > div:nth-child(7) > div.character__job__level"
+ },
+ "NAME": {
+ "selector": "div.character__content > div:nth-child(7) > div.character__job__name"
+ },
+ "METTLE": {
+ "selector": "div.character__content > div:nth-child(7) > div.character__job__exp",
+ "regex": "(?P<Mettle>\\S+) \\/"
+ }
+ },
+ "EUREKA": {
+ "LEVEL": {
+ "selector": "div.character__content > div:nth-child(9) > div.character__job__level"
+ },
+ "NAME": {
+ "selector": "div.character__content > div:nth-child(9) > div.character__job__name"
+ },
+ "EXP": {
+ "selector": "div.character__content > div:nth-child(9) > div.character__job__exp",
+ "regex": "(?P<CurrentEXP>\\S+) \\/ (?P<MaxEXP>\\S+)"
+ },
+ "EXP_MAX": {
+ "selector": "div.character__content > div:nth-child(9) > div.character__job__exp",
+ "regex": "\\/ (?P<MaxEXP>\\S+)"
+ }
+ },
+ "PALADIN": {
+ "LEVEL": {
+ "selector": ".character__content > div:nth-child(2) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(1) > div:nth-child(2)"
+ },
+ "UNLOCKSTATE": {
+ "selector": ".character__content > div:nth-child(2) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(1) > div:nth-child(3)"
+ },
+ "EXP": {
+ "selector": ".character__content > div:nth-child(2) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(1) > div:nth-child(4)",
+ "regex": "(?P<CurrentEXP>\\S+) \\/ (?P<MaxEXP>\\S+)"
+ },
+ "EXP_MAX": {
+ "selector": ".character__content > div:nth-child(2) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(1) > div:nth-child(4)",
+ "regex": "\\/ (?P<MaxEXP>\\S+)"
+ }
+ },
+ "WARRIOR": {
+ "LEVEL": {
+ "selector": ".character__content > div:nth-child(2) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(2) > div:nth-child(2)"
+ },
+ "UNLOCKSTATE": {
+ "selector": ".character__content > div:nth-child(2) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(2) > div:nth-child(3)"
+ },
+ "EXP": {
+ "selector": ".character__content > div:nth-child(2) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(2) > div:nth-child(4)",
+ "regex": "(?P<CurrentEXP>\\S+) \\/ (?P<MaxEXP>\\S+)"
+ },
+ "EXP_MAX": {
+ "selector": ".character__content > div:nth-child(2) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(2) > div:nth-child(4)",
+ "regex": "\\/ (?P<MaxEXP>\\S+)"
+ }
+ },
+ "DARKKNIGHT": {
+ "LEVEL": {
+ "selector": ".character__content > div:nth-child(2) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(3) > div:nth-child(2)"
+ },
+ "UNLOCKSTATE": {
+ "selector": ".character__content > div:nth-child(2) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(3) > div:nth-child(3)"
+ },
+ "EXP": {
+ "selector": ".character__content > div:nth-child(2) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(3) > div:nth-child(4)",
+ "regex": "(?P<CurrentEXP>\\S+) \\/ (?P<MaxEXP>\\S+)"
+ },
+ "EXP_MAX": {
+ "selector": ".character__content > div:nth-child(2) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(3) > div:nth-child(4)",
+ "regex": "\\/ (?P<MaxEXP>\\S+)"
+ }
+ },
+ "GUNBREAKER": {
+ "LEVEL": {
+ "selector": ".character__content > div:nth-child(2) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(4) > div:nth-child(2)"
+ },
+ "UNLOCKSTATE": {
+ "selector": ".character__content > div:nth-child(2) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(4) > div:nth-child(3)"
+ },
+ "EXP": {
+ "selector": ".character__content > div:nth-child(2) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(4) > div:nth-child(4)",
+ "regex": "(?P<CurrentEXP>\\S+) \\/ (?P<MaxEXP>\\S+)"
+ },
+ "EXP_MAX": {
+ "selector": ".character__content > div:nth-child(2) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(4) > div:nth-child(4)",
+ "regex": "\\/ (?P<MaxEXP>\\S+)"
+ }
+ },
+ "MONK": {
+ "LEVEL": {
+ "selector": "div.clearfix:nth-child(3) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(1) > div:nth-child(2)"
+ },
+ "UNLOCKSTATE": {
+ "selector": "div.clearfix:nth-child(3) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(1) > div:nth-child(3)"
+ },
+ "EXP": {
+ "selector": "div.clearfix:nth-child(3) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(1) > div:nth-child(4)",
+ "regex": "(?P<CurrentEXP>\\S+) \\/ (?P<MaxEXP>\\S+)"
+ },
+ "EXP_MAX": {
+ "selector": "div.clearfix:nth-child(3) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(1) > div:nth-child(4)",
+ "regex": "\\/ (?P<MaxEXP>\\S+)"
+ }
+ },
+ "DRAGOON": {
+ "LEVEL": {
+ "selector": "div.clearfix:nth-child(3) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(2) > div:nth-child(2)"
+ },
+ "UNLOCKSTATE": {
+ "selector": "div.clearfix:nth-child(3) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(2) > div:nth-child(3)"
+ },
+ "EXP": {
+ "selector": "div.clearfix:nth-child(3) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(2) > div:nth-child(4)",
+ "regex": "(?P<CurrentEXP>\\S+) \\/ (?P<MaxEXP>\\S+)"
+ },
+ "EXP_MAX": {
+ "selector": "div.clearfix:nth-child(3) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(2) > div:nth-child(4)",
+ "regex": "\\/ (?P<MaxEXP>\\S+)"
+ }
+ },
+ "NINJA": {
+ "LEVEL": {
+ "selector": "div.clearfix:nth-child(3) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(3) > div:nth-child(2)"
+ },
+ "UNLOCKSTATE": {
+ "selector": "div.clearfix:nth-child(3) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(3) > div:nth-child(3)"
+ },
+ "EXP": {
+ "selector": "div.clearfix:nth-child(3) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(3) > div:nth-child(4)",
+ "regex": "(?P<CurrentEXP>\\S+) \\/ (?P<MaxEXP>\\S+)"
+ },
+ "EXP_MAX": {
+ "selector": "div.clearfix:nth-child(3) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(3) > div:nth-child(4)",
+ "regex": "\\/ (?P<MaxEXP>\\S+)"
+ }
+ },
+ "SAMURAI": {
+ "LEVEL": {
+ "selector": "div.clearfix:nth-child(3) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(4) > div:nth-child(2)"
+ },
+ "UNLOCKSTATE": {
+ "selector": "div.clearfix:nth-child(3) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(4) > div:nth-child(3)"
+ },
+ "EXP": {
+ "selector": "div.clearfix:nth-child(3) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(4) > div:nth-child(4)",
+ "regex": "(?P<CurrentEXP>\\S+) \\/ (?P<MaxEXP>\\S+)"
+ },
+ "EXP_MAX": {
+ "selector": "div.clearfix:nth-child(3) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(4) > div:nth-child(4)",
+ "regex": "\\/ (?P<MaxEXP>\\S+)"
+ }
+ },
+ "REAPER": {
+ "LEVEL": {
+ "selector": "div.clearfix:nth-child(3) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(5) > div:nth-child(2)"
+ },
+ "UNLOCKSTATE": {
+ "selector": "div.clearfix:nth-child(3) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(5) > div:nth-child(3)"
+ },
+ "EXP": {
+ "selector": "div.clearfix:nth-child(3) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(5) > div:nth-child(4)",
+ "regex": "(?P<CurrentEXP>\\S+) \\/ (?P<MaxEXP>\\S+)"
+ },
+ "EXP_MAX": {
+ "selector": "div.clearfix:nth-child(3) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(5) > div:nth-child(4)",
+ "regex": "\\/ (?P<MaxEXP>\\S+)"
+ }
+ },
+ "WHITEMAGE": {
+ "LEVEL": {
+ "selector": ".character__content > div:nth-child(2) > div:nth-child(2) > ul:nth-child(2) > li:nth-child(1) > div:nth-child(2)"
+ },
+ "UNLOCKSTATE": {
+ "selector": ".character__content > div:nth-child(2) > div:nth-child(2) > ul:nth-child(2) > li:nth-child(1) > div:nth-child(3)"
+ },
+ "EXP": {
+ "selector": ".character__content > div:nth-child(2) > div:nth-child(2) > ul:nth-child(2) > li:nth-child(1) > div:nth-child(4)",
+ "regex": "(?P<CurrentEXP>\\S+) \\/ (?P<MaxEXP>\\S+)"
+ },
+ "EXP_MAX": {
+ "selector": ".character__content > div:nth-child(2) > div:nth-child(2) > ul:nth-child(2) > li:nth-child(1) > div:nth-child(4)",
+ "regex": "\\/ (?P<MaxEXP>\\S+)"
+ }
+ },
+ "SCHOLAR": {
+ "LEVEL": {
+ "selector": ".character__content > div:nth-child(2) > div:nth-child(2) > ul:nth-child(2) > li:nth-child(2) > div:nth-child(2)"
+ },
+ "UNLOCKSTATE": {
+ "selector": ".character__content > div:nth-child(2) > div:nth-child(2) > ul:nth-child(2) > li:nth-child(2) > div:nth-child(3)"
+ },
+ "EXP": {
+ "selector": ".character__content > div:nth-child(2) > div:nth-child(2) > ul:nth-child(2) > li:nth-child(2) > div:nth-child(4)",
+ "regex": "(?P<CurrentEXP>\\S+) \\/ (?P<MaxEXP>\\S+)"
+ },
+ "EXP_MAX": {
+ "selector": ".character__content > div:nth-child(2) > div:nth-child(2) > ul:nth-child(2) > li:nth-child(2) > div:nth-child(4)",
+ "regex": "\\/ (?P<MaxEXP>\\S+)"
+ }
+ },
+ "ASTROLOGIAN": {
+ "LEVEL": {
+ "selector": ".character__content > div:nth-child(2) > div:nth-child(2) > ul:nth-child(2) > li:nth-child(3) > div:nth-child(2)"
+ },
+ "UNLOCKSTATE": {
+ "selector": ".character__content > div:nth-child(2) > div:nth-child(2) > ul:nth-child(2) > li:nth-child(3) > div:nth-child(3)"
+ },
+ "EXP": {
+ "selector": ".character__content > div:nth-child(2) > div:nth-child(2) > ul:nth-child(2) > li:nth-child(3) > div:nth-child(4)",
+ "regex": "(?P<CurrentEXP>\\S+) \\/ (?P<MaxEXP>\\S+)"
+ },
+ "EXP_MAX": {
+ "selector": ".character__content > div:nth-child(2) > div:nth-child(2) > ul:nth-child(2) > li:nth-child(3) > div:nth-child(4)",
+ "regex": "\\/ (?P<MaxEXP>\\S+)"
+ }
+ },
+ "SAGE": {
+ "LEVEL": {
+ "selector": ".character__content > div:nth-child(2) > div:nth-child(2) > ul:nth-child(2) > li:nth-child(4) > div:nth-child(2)"
+ },
+ "UNLOCKSTATE": {
+ "selector": ".character__content > div:nth-child(2) > div:nth-child(2) > ul:nth-child(2) > li:nth-child(4) > div:nth-child(3)"
+ },
+ "EXP": {
+ "selector": ".character__content > div:nth-child(2) > div:nth-child(2) > ul:nth-child(2) > li:nth-child(4) > div:nth-child(4)",
+ "regex": "(?P<CurrentEXP>\\S+) \\/ (?P<MaxEXP>\\S+)"
+ },
+ "EXP_MAX": {
+ "selector": ".character__content > div:nth-child(2) > div:nth-child(2) > ul:nth-child(2) > li:nth-child(4) > div:nth-child(4)",
+ "regex": "\\/ (?P<MaxEXP>\\S+)"
+ }
+ },
+ "BARD": {
+ "LEVEL": {
+ "selector": "div.clearfix:nth-child(3) > div:nth-child(2) > ul:nth-child(2) > li:nth-child(1) > div:nth-child(2)"
+ },
+ "UNLOCKSTATE": {
+ "selector": "div.clearfix:nth-child(3) > div:nth-child(2) > ul:nth-child(2) > li:nth-child(1) > div:nth-child(3)"
+ },
+ "EXP": {
+ "selector": "div.clearfix:nth-child(3) > div:nth-child(2) > ul:nth-child(2) > li:nth-child(1) > div:nth-child(4)",
+ "regex": "(?P<CurrentEXP>\\S+) \\/ (?P<MaxEXP>\\S+)"
+ },
+ "EXP_MAX": {
+ "selector": "div.clearfix:nth-child(3) > div:nth-child(2) > ul:nth-child(2) > li:nth-child(1) > div:nth-child(4)",
+ "regex": "\\/ (?P<MaxEXP>\\S+)"
+ }
+ },
+ "MACHINIST": {
+ "LEVEL": {
+ "selector": "div.clearfix:nth-child(3) > div:nth-child(2) > ul:nth-child(2) > li:nth-child(2) > div:nth-child(2)"
+ },
+ "UNLOCKSTATE": {
+ "selector": "div.clearfix:nth-child(3) > div:nth-child(2) > ul:nth-child(2) > li:nth-child(2) > div:nth-child(3)"
+ },
+ "EXP": {
+ "selector": "div.clearfix:nth-child(3) > div:nth-child(2) > ul:nth-child(2) > li:nth-child(2) > div:nth-child(4)",
+ "regex": "(?P<CurrentEXP>\\S+) \\/ (?P<MaxEXP>\\S+)"
+ },
+ "EXP_MAX": {
+ "selector": "div.clearfix:nth-child(3) > div:nth-child(2) > ul:nth-child(2) > li:nth-child(2) > div:nth-child(4)",
+ "regex": "\\/ (?P<MaxEXP>\\S+)"
+ }
+ },
+ "DANCER": {
+ "LEVEL": {
+ "selector": "div.clearfix:nth-child(3) > div:nth-child(2) > ul:nth-child(2) > li:nth-child(3) > div:nth-child(2)"
+ },
+ "UNLOCKSTATE": {
+ "selector": "div.clearfix:nth-child(3) > div:nth-child(2) > ul:nth-child(2) > li:nth-child(3) > div:nth-child(3)"
+ },
+ "EXP": {
+ "selector": "div.clearfix:nth-child(3) > div:nth-child(2) > ul:nth-child(2) > li:nth-child(3) > div:nth-child(4)",
+ "regex": "(?P<CurrentEXP>\\S+) \\/ (?P<MaxEXP>\\S+)"
+ },
+ "EXP_MAX": {
+ "selector": "div.clearfix:nth-child(3) > div:nth-child(2) > ul:nth-child(2) > li:nth-child(3) > div:nth-child(4)",
+ "regex": "\\/ (?P<MaxEXP>\\S+)"
+ }
+ },
+ "BLACKMAGE": {
+ "LEVEL": {
+ "selector": "ul.character__job:nth-child(4) > li:nth-child(1) > div:nth-child(2)"
+ },
+ "UNLOCKSTATE": {
+ "selector": "ul.character__job:nth-child(4) > li:nth-child(1) > div:nth-child(3)"
+ },
+ "EXP": {
+ "selector": "ul.character__job:nth-child(4) > li:nth-child(1) > div:nth-child(4)",
+ "regex": "(?P<CurrentEXP>\\S+) \\/ (?P<MaxEXP>\\S+)"
+ },
+ "EXP_MAX": {
+ "selector": "ul.character__job:nth-child(4) > li:nth-child(1) > div:nth-child(4)",
+ "regex": "\\/ (?P<MaxEXP>\\S+)"
+ }
+ },
+ "SUMMONER": {
+ "LEVEL": {
+ "selector": "ul.character__job:nth-child(4) > li:nth-child(2) > div:nth-child(2)"
+ },
+ "UNLOCKSTATE": {
+ "selector": "ul.character__job:nth-child(4) > li:nth-child(2) > div:nth-child(3)"
+ },
+ "EXP": {
+ "selector": "ul.character__job:nth-child(4) > li:nth-child(2) > div:nth-child(4)",
+ "regex": "(?P<CurrentEXP>\\S+) \\/ (?P<MaxEXP>\\S+)"
+ },
+ "EXP_MAX": {
+ "selector": "ul.character__job:nth-child(4) > li:nth-child(2) > div:nth-child(4)",
+ "regex": "\\/ (?P<MaxEXP>\\S+)"
+ }
+ },
+ "REDMAGE": {
+ "LEVEL": {
+ "selector": "ul.character__job:nth-child(4) > li:nth-child(3) > div:nth-child(2)"
+ },
+ "UNLOCKSTATE": {
+ "selector": "ul.character__job:nth-child(4) > li:nth-child(3) > div:nth-child(3)"
+ },
+ "EXP": {
+ "selector": "ul.character__job:nth-child(4) > li:nth-child(3) > div:nth-child(4)",
+ "regex": "(?P<CurrentEXP>\\S+) \\/ (?P<MaxEXP>\\S+)"
+ },
+ "EXP_MAX": {
+ "selector": "ul.character__job:nth-child(4) > li:nth-child(3) > div:nth-child(4)",
+ "regex": "\\/ (?P<MaxEXP>\\S+)"
+ }
+ },
+ "BLUEMAGE": {
+ "LEVEL": {
+ "selector": "ul.character__job:nth-child(4) > li:nth-child(4) > div:nth-child(2)"
+ },
+ "UNLOCKSTATE": {
+ "selector": "ul.character__job:nth-child(4) > li:nth-child(4) > div:nth-child(3)"
+ },
+ "EXP": {
+ "selector": "ul.character__job:nth-child(4) > li:nth-child(4) > div:nth-child(4)",
+ "regex": "(?P<CurrentEXP>\\S+) \\/ (?P<MaxEXP>\\S+)"
+ },
+ "EXP_MAX": {
+ "selector": "ul.character__job:nth-child(4) > li:nth-child(4) > div:nth-child(4)",
+ "regex": "\\/ (?P<MaxEXP>\\S+)"
+ }
+ },
+ "CARPENTER": {
+ "LEVEL": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(1) > div:nth-child(2)"
+ },
+ "UNLOCKSTATE": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(1) > div:nth-child(3)"
+ },
+ "EXP": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(1) > div:nth-child(4)",
+ "regex": "(?P<CurrentEXP>\\S+) \\/ (?P<MaxEXP>\\S+)"
+ },
+ "EXP_MAX": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(1) > div:nth-child(4)",
+ "regex": "\\/ (?P<MaxEXP>\\S+)"
+ },
+ "SPECIALIST": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(1) > div:nth-child(3).character__job__name--meister"
+ }
+ },
+ "BLACKSMITH": {
+ "LEVEL": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(2) > div:nth-child(2)"
+ },
+ "UNLOCKSTATE": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(2) > div:nth-child(3)"
+ },
+ "EXP": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(2) > div:nth-child(4)",
+ "regex": "(?P<CurrentEXP>\\S+) \\/ (?P<MaxEXP>\\S+)"
+ },
+ "EXP_MAX": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(2) > div:nth-child(4)",
+ "regex": "\\/ (?P<MaxEXP>\\S+)"
+ },
+ "SPECIALIST": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(2) > div:nth-child(3).character__job__name--meister"
+ }
+ },
+ "ARMORER": {
+ "LEVEL": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(3) > div:nth-child(2)"
+ },
+ "UNLOCKSTATE": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(3) > div:nth-child(3)"
+ },
+ "EXP": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(3) > div:nth-child(4)",
+ "regex": "(?P<CurrentEXP>\\S+) \\/ (?P<MaxEXP>\\S+)"
+ },
+ "EXP_MAX": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(3) > div:nth-child(4)",
+ "regex": "\\/ (?P<MaxEXP>\\S+)"
+ },
+ "SPECIALIST": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(3) > div:nth-child(3).character__job__name--meister"
+ }
+ },
+ "GOLDSMITH": {
+ "LEVEL": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(4) > div:nth-child(2)"
+ },
+ "UNLOCKSTATE": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(4) > div:nth-child(3)"
+ },
+ "EXP": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(4) > div:nth-child(4)",
+ "regex": "(?P<CurrentEXP>\\S+) \\/ (?P<MaxEXP>\\S+)"
+ },
+ "EXP_MAX": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(4) > div:nth-child(4)",
+ "regex": "\\/ (?P<MaxEXP>\\S+)"
+ },
+ "SPECIALIST": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(4) > div:nth-child(3).character__job__name--meister"
+ }
+ },
+ "LEATHERWORKER": {
+ "LEVEL": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(5) > div:nth-child(2)"
+ },
+ "UNLOCKSTATE": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(5) > div:nth-child(3)"
+ },
+ "EXP": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(5) > div:nth-child(4)",
+ "regex": "(?P<CurrentEXP>\\S+) \\/ (?P<MaxEXP>\\S+)"
+ },
+ "EXP_MAX": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(5) > div:nth-child(4)",
+ "regex": "\\/ (?P<MaxEXP>\\S+)"
+ },
+ "SPECIALIST": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(5) > div:nth-child(3).character__job__name--meister"
+ }
+ },
+ "WEAVER": {
+ "LEVEL": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(6) > div:nth-child(2)"
+ },
+ "UNLOCKSTATE": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(6) > div:nth-child(3)"
+ },
+ "EXP": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(6) > div:nth-child(4)",
+ "regex": "(?P<CurrentEXP>\\S+) \\/ (?P<MaxEXP>\\S+)"
+ },
+ "EXP_MAX": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(6) > div:nth-child(4)",
+ "regex": "\\/ (?P<MaxEXP>\\S+)"
+ },
+ "SPECIALIST": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(6) > div:nth-child(3).character__job__name--meister"
+ }
+ },
+ "ALCHEMIST": {
+ "LEVEL": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(7) > div:nth-child(2)"
+ },
+ "UNLOCKSTATE": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(7) > div:nth-child(3)"
+ },
+ "EXP": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(7) > div:nth-child(4)",
+ "regex": "(?P<CurrentEXP>\\S+) \\/ (?P<MaxEXP>\\S+)"
+ },
+ "EXP_MAX": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(7) > div:nth-child(4)",
+ "regex": "\\/ (?P<MaxEXP>\\S+)"
+ },
+ "SPECIALIST": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(7) > div:nth-child(3).character__job__name--meister"
+ }
+ },
+ "CULINARIAN": {
+ "LEVEL": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(8) > div:nth-child(2)"
+ },
+ "UNLOCKSTATE": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(8) > div:nth-child(3)"
+ },
+ "EXP": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(8) > div:nth-child(4)",
+ "regex": "(?P<CurrentEXP>\\S+) \\/ (?P<MaxEXP>\\S+)"
+ },
+ "EXP_MAX": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(8) > div:nth-child(4)",
+ "regex": "\\/ (?P<MaxEXP>\\S+)"
+ },
+ "SPECIALIST": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(8) > div:nth-child(3).character__job__name--meister"
+ }
+ },
+ "MINER": {
+ "LEVEL": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(2) > ul:nth-child(2) > li:nth-child(1) > div:nth-child(2)"
+ },
+ "UNLOCKSTATE": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(2) > ul:nth-child(2) > li:nth-child(1) > div:nth-child(3)"
+ },
+ "EXP": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(2) > ul:nth-child(2) > li:nth-child(1) > div:nth-child(4)",
+ "regex": "(?P<CurrentEXP>\\S+) \\/ (?P<MaxEXP>\\S+)"
+ },
+ "EXP_MAX": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(2) > ul:nth-child(2) > li:nth-child(1) > div:nth-child(4)",
+ "regex": "\\/ (?P<MaxEXP>\\S+)"
+ }
+ },
+ "BOTANIST": {
+ "LEVEL": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(2) > ul:nth-child(2) > li:nth-child(2) > div:nth-child(2)"
+ },
+ "UNLOCKSTATE": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(2) > ul:nth-child(2) > li:nth-child(2) > div:nth-child(3)"
+ },
+ "EXP": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(2) > ul:nth-child(2) > li:nth-child(2) > div:nth-child(4)",
+ "regex": "(?P<CurrentEXP>\\S+) \\/ (?P<MaxEXP>\\S+)"
+ },
+ "EXP_MAX": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(2) > ul:nth-child(2) > li:nth-child(2) > div:nth-child(4)",
+ "regex": "\\/ (?P<MaxEXP>\\S+)"
+ }
+ },
+ "FISHER": {
+ "LEVEL": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(2) > ul:nth-child(2) > li:nth-child(3) > div:nth-child(2)"
+ },
+ "UNLOCKSTATE": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(2) > ul:nth-child(2) > li:nth-child(3) > div:nth-child(3)"
+ },
+ "EXP": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(2) > ul:nth-child(2) > li:nth-child(3) > div:nth-child(4)",
+ "regex": "(?P<CurrentEXP>\\S+) \\/ (?P<MaxEXP>\\S+)"
+ },
+ "EXP_MAX": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(2) > ul:nth-child(2) > li:nth-child(3) > div:nth-child(4)",
+ "regex": "\\/ (?P<MaxEXP>\\S+)"
+ }
+ }
+} \ No newline at end of file
diff --git a/ffxiv/lodestone-css-selectors-0.52.0/profile/classjob_original.json b/ffxiv/lodestone-css-selectors-0.52.0/profile/classjob_original.json
new file mode 100644
index 0000000..3c8f537
--- /dev/null
+++ b/ffxiv/lodestone-css-selectors-0.52.0/profile/classjob_original.json
@@ -0,0 +1,398 @@
+{
+ "BOZJA": {
+ "LEVEL": {
+ "selector": "div.character__job__list:nth-child(7) > div:nth-child(2)"
+ },
+ "METTLE": {
+ "selector": "div.character__job__list:nth-child(7) > div:nth-child(4)",
+ "regex": "(?P<Mettle>\\S+) \\/"
+ },
+ "NAME": {
+ "selector": "div.character__job__list:nth-child(7) > div:nth-child(3)"
+ }
+ },
+ "EUREKA": {
+ "EXP": {
+ "selector": "div.character__job__list:nth-child(9) > div:nth-child(4)",
+ "regex": "(?P<CurrentEXP>\\S+) \\/ (?P<MaxEXP>\\S+)"
+ },
+ "LEVEL": {
+ "selector": "div.character__job__list:nth-child(9) > div:nth-child(2)"
+ },
+ "NAME": {
+ "selector": "div.character__job__list:nth-child(9) > div:nth-child(3)"
+ }
+ },
+ "PALADIN": {
+ "LEVEL": {
+ "selector": ".character__content > div:nth-child(2) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(1) > div:nth-child(2)"
+ },
+ "UNLOCKSTATE": {
+ "selector": ".character__content > div:nth-child(2) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(1) > div:nth-child(3)"
+ },
+ "EXP": {
+ "selector": ".character__content > div:nth-child(2) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(1) > div:nth-child(4)",
+ "regex": "(?P<CurrentEXP>\\S+) \\/ (?P<MaxEXP>\\S+)"
+ }
+ },
+ "WARRIOR": {
+ "LEVEL": {
+ "selector": ".character__content > div:nth-child(2) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(2) > div:nth-child(2)"
+ },
+ "UNLOCKSTATE": {
+ "selector": ".character__content > div:nth-child(2) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(2) > div:nth-child(3)"
+ },
+ "EXP": {
+ "selector": ".character__content > div:nth-child(2) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(2) > div:nth-child(4)",
+ "regex": "(?P<CurrentEXP>\\S+) \\/ (?P<MaxEXP>\\S+)"
+ }
+ },
+ "DARKKNIGHT": {
+ "LEVEL": {
+ "selector": ".character__content > div:nth-child(2) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(3) > div:nth-child(2)"
+ },
+ "UNLOCKSTATE": {
+ "selector": ".character__content > div:nth-child(2) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(3) > div:nth-child(3)"
+ },
+ "EXP": {
+ "selector": ".character__content > div:nth-child(2) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(3) > div:nth-child(4)",
+ "regex": "(?P<CurrentEXP>\\S+) \\/ (?P<MaxEXP>\\S+)"
+ }
+ },
+ "GUNBREAKER": {
+ "LEVEL": {
+ "selector": ".character__content > div:nth-child(2) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(4) > div:nth-child(2)"
+ },
+ "UNLOCKSTATE": {
+ "selector": ".character__content > div:nth-child(2) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(4) > div:nth-child(3)"
+ },
+ "EXP": {
+ "selector": ".character__content > div:nth-child(2) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(4) > div:nth-child(4)",
+ "regex": "(?P<CurrentEXP>\\S+) \\/ (?P<MaxEXP>\\S+)"
+ }
+ },
+ "WHITEMAGE": {
+ "LEVEL": {
+ "selector": ".character__content > div:nth-child(2) > div:nth-child(2) > ul:nth-child(2) > li:nth-child(1) > div:nth-child(2)"
+ },
+ "UNLOCKSTATE": {
+ "selector": ".character__content > div:nth-child(2) > div:nth-child(2) > ul:nth-child(2) > li:nth-child(1) > div:nth-child(3)"
+ },
+ "EXP": {
+ "selector": ".character__content > div:nth-child(2) > div:nth-child(2) > ul:nth-child(2) > li:nth-child(1) > div:nth-child(4)",
+ "regex": "(?P<CurrentEXP>\\S+) \\/ (?P<MaxEXP>\\S+)"
+ }
+ },
+ "SCHOLAR": {
+ "LEVEL": {
+ "selector": ".character__content > div:nth-child(2) > div:nth-child(2) > ul:nth-child(2) > li:nth-child(2) > div:nth-child(2)"
+ },
+ "UNLOCKSTATE": {
+ "selector": ".character__content > div:nth-child(2) > div:nth-child(2) > ul:nth-child(2) > li:nth-child(2) > div:nth-child(3)"
+ },
+ "EXP": {
+ "selector": ".character__content > div:nth-child(2) > div:nth-child(2) > ul:nth-child(2) > li:nth-child(2) > div:nth-child(4)",
+ "regex": "(?P<CurrentEXP>\\S+) \\/ (?P<MaxEXP>\\S+)"
+ }
+ },
+ "ASTROLOGIAN": {
+ "LEVEL": {
+ "selector": ".character__content > div:nth-child(2) > div:nth-child(2) > ul:nth-child(2) > li:nth-child(3) > div:nth-child(2)"
+ },
+ "UNLOCKSTATE": {
+ "selector": ".character__content > div:nth-child(2) > div:nth-child(2) > ul:nth-child(2) > li:nth-child(3) > div:nth-child(3)"
+ },
+ "EXP": {
+ "selector": ".character__content > div:nth-child(2) > div:nth-child(2) > ul:nth-child(2) > li:nth-child(3) > div:nth-child(4)",
+ "regex": "(?P<CurrentEXP>\\S+) \\/ (?P<MaxEXP>\\S+)"
+ }
+ },
+ "SAGE": {
+ "LEVEL": {
+ "selector": ".character__content > div:nth-child(2) > div:nth-child(2) > ul:nth-child(2) > li:nth-child(4) > div:nth-child(2)"
+ },
+ "UNLOCKSTATE": {
+ "selector": ".character__content > div:nth-child(2) > div:nth-child(2) > ul:nth-child(2) > li:nth-child(4) > div:nth-child(3)"
+ },
+ "EXP": {
+ "selector": ".character__content > div:nth-child(2) > div:nth-child(2) > ul:nth-child(2) > li:nth-child(4) > div:nth-child(4)",
+ "regex": "(?P<CurrentEXP>\\S+) \\/ (?P<MaxEXP>\\S+)"
+ }
+ },
+ "MONK": {
+ "LEVEL": {
+ "selector": "div.clearfix:nth-child(3) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(1) > div:nth-child(2)"
+ },
+ "UNLOCKSTATE": {
+ "selector": "div.clearfix:nth-child(3) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(1) > div:nth-child(3)"
+ },
+ "EXP": {
+ "selector": "div.clearfix:nth-child(3) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(1) > div:nth-child(4)",
+ "regex": "(?P<CurrentEXP>\\S+) \\/ (?P<MaxEXP>\\S+)"
+ }
+ },
+ "DRAGOON": {
+ "LEVEL": {
+ "selector": "div.clearfix:nth-child(3) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(2) > div:nth-child(2)"
+ },
+ "UNLOCKSTATE": {
+ "selector": "div.clearfix:nth-child(3) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(2) > div:nth-child(3)"
+ },
+ "EXP": {
+ "selector": "div.clearfix:nth-child(3) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(2) > div:nth-child(4)",
+ "regex": "(?P<CurrentEXP>\\S+) \\/ (?P<MaxEXP>\\S+)"
+ }
+ },
+ "NINJA": {
+ "LEVEL": {
+ "selector": "div.clearfix:nth-child(3) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(3) > div:nth-child(2)"
+ },
+ "UNLOCKSTATE": {
+ "selector": "div.clearfix:nth-child(3) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(3) > div:nth-child(3)"
+ },
+ "EXP": {
+ "selector": "div.clearfix:nth-child(3) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(3) > div:nth-child(4)",
+ "regex": "(?P<CurrentEXP>\\S+) \\/ (?P<MaxEXP>\\S+)"
+ }
+ },
+ "SAMURAI": {
+ "LEVEL": {
+ "selector": "div.clearfix:nth-child(3) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(4) > div:nth-child(2)"
+ },
+ "UNLOCKSTATE": {
+ "selector": "div.clearfix:nth-child(3) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(4) > div:nth-child(3)"
+ },
+ "EXP": {
+ "selector": "div.clearfix:nth-child(3) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(4) > div:nth-child(4)",
+ "regex": "(?P<CurrentEXP>\\S+) \\/ (?P<MaxEXP>\\S+)"
+ }
+ },
+ "REAPER": {
+ "LEVEL": {
+ "selector": "div.clearfix:nth-child(3) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(5) > div:nth-child(2)"
+ },
+ "UNLOCKSTATE": {
+ "selector": "div.clearfix:nth-child(3) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(5) > div:nth-child(3)"
+ },
+ "EXP": {
+ "selector": "div.clearfix:nth-child(3) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(5) > div:nth-child(4)",
+ "regex": "(?P<CurrentEXP>\\S+) \\/ (?P<MaxEXP>\\S+)"
+ }
+ },
+ "BARD": {
+ "LEVEL": {
+ "selector": "div.clearfix:nth-child(3) > div:nth-child(2) > ul:nth-child(2) > li:nth-child(1) > div:nth-child(2)"
+ },
+ "UNLOCKSTATE": {
+ "selector": "div.clearfix:nth-child(3) > div:nth-child(2) > ul:nth-child(2) > li:nth-child(1) > div:nth-child(3)"
+ },
+ "EXP": {
+ "selector": "div.clearfix:nth-child(3) > div:nth-child(2) > ul:nth-child(2) > li:nth-child(1) > div:nth-child(4)",
+ "regex": "(?P<CurrentEXP>\\S+) \\/ (?P<MaxEXP>\\S+)"
+ }
+ },
+ "MACHINIST": {
+ "LEVEL": {
+ "selector": "div.clearfix:nth-child(3) > div:nth-child(2) > ul:nth-child(2) > li:nth-child(2) > div:nth-child(2)"
+ },
+ "UNLOCKSTATE": {
+ "selector": "div.clearfix:nth-child(3) > div:nth-child(2) > ul:nth-child(2) > li:nth-child(2) > div:nth-child(3)"
+ },
+ "EXP": {
+ "selector": "div.clearfix:nth-child(3) > div:nth-child(2) > ul:nth-child(2) > li:nth-child(2) > div:nth-child(4)",
+ "regex": "(?P<CurrentEXP>\\S+) \\/ (?P<MaxEXP>\\S+)"
+ }
+ },
+ "DANCER": {
+ "LEVEL": {
+ "selector": "div.clearfix:nth-child(3) > div:nth-child(2) > ul:nth-child(2) > li:nth-child(3) > div:nth-child(2)"
+ },
+ "UNLOCKSTATE": {
+ "selector": "div.clearfix:nth-child(3) > div:nth-child(2) > ul:nth-child(2) > li:nth-child(3) > div:nth-child(3)"
+ },
+ "EXP": {
+ "selector": "div.clearfix:nth-child(3) > div:nth-child(2) > ul:nth-child(2) > li:nth-child(3) > div:nth-child(4)",
+ "regex": "(?P<CurrentEXP>\\S+) \\/ (?P<MaxEXP>\\S+)"
+ }
+ },
+ "BLACKMAGE": {
+ "LEVEL": {
+ "selector": "ul.character__job:nth-child(4) > li:nth-child(1) > div:nth-child(2)"
+ },
+ "UNLOCKSTATE": {
+ "selector": "ul.character__job:nth-child(4) > li:nth-child(1) > div:nth-child(3)"
+ },
+ "EXP": {
+ "selector": "ul.character__job:nth-child(4) > li:nth-child(1) > div:nth-child(4)",
+ "regex": "(?P<CurrentEXP>\\S+) \\/ (?P<MaxEXP>\\S+)"
+ }
+ },
+ "SUMMONER": {
+ "LEVEL": {
+ "selector": "ul.character__job:nth-child(4) > li:nth-child(2) > div:nth-child(2)"
+ },
+ "UNLOCKSTATE": {
+ "selector": "ul.character__job:nth-child(4) > li:nth-child(2) > div:nth-child(3)"
+ },
+ "EXP": {
+ "selector": "ul.character__job:nth-child(4) > li:nth-child(2) > div:nth-child(4)",
+ "regex": "(?P<CurrentEXP>\\S+) \\/ (?P<MaxEXP>\\S+)"
+ }
+ },
+ "REDMAGE": {
+ "LEVEL": {
+ "selector": "ul.character__job:nth-child(4) > li:nth-child(3) > div:nth-child(2)"
+ },
+ "UNLOCKSTATE": {
+ "selector": "ul.character__job:nth-child(4) > li:nth-child(3) > div:nth-child(3)"
+ },
+ "EXP": {
+ "selector": "ul.character__job:nth-child(4) > li:nth-child(3) > div:nth-child(4)",
+ "regex": "(?P<CurrentEXP>\\S+) \\/ (?P<MaxEXP>\\S+)"
+ }
+ },
+ "BLUEMAGE": {
+ "LEVEL": {
+ "selector": "ul.character__job:nth-child(4) > li:nth-child(4) > div:nth-child(2)"
+ },
+ "UNLOCKSTATE": {
+ "selector": "ul.character__job:nth-child(4) > li:nth-child(4) > div:nth-child(3)"
+ },
+ "EXP": {
+ "selector": "ul.character__job:nth-child(4) > li:nth-child(4) > div:nth-child(4)",
+ "regex": "(?P<CurrentEXP>\\S+) \\/ (?P<MaxEXP>\\S+)"
+ }
+ },
+ "CARPENTER": {
+ "LEVEL": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(1) > div:nth-child(2)"
+ },
+ "UNLOCKSTATE": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(1) > div:nth-child(3)"
+ },
+ "EXP": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(1) > div:nth-child(4)",
+ "regex": "(?P<CurrentEXP>\\S+) \\/ (?P<MaxEXP>\\S+)"
+ }
+ },
+ "BLACKSMITH": {
+ "LEVEL": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(2) > div:nth-child(2)"
+ },
+ "UNLOCKSTATE": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(2) > div:nth-child(3)"
+ },
+ "EXP": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(2) > div:nth-child(4)",
+ "regex": "(?P<CurrentEXP>\\S+) \\/ (?P<MaxEXP>\\S+)"
+ }
+ },
+ "ARMORER": {
+ "LEVEL": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(3) > div:nth-child(2)"
+ },
+ "UNLOCKSTATE": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(3) > div:nth-child(3)"
+ },
+ "EXP": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(3) > div:nth-child(4)",
+ "regex": "(?P<CurrentEXP>\\S+) \\/ (?P<MaxEXP>\\S+)"
+ }
+ },
+ "GOLDSMITH": {
+ "LEVEL": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(4) > div:nth-child(2)"
+ },
+ "UNLOCKSTATE": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(4) > div:nth-child(3)"
+ },
+ "EXP": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(4) > div:nth-child(4)",
+ "regex": "(?P<CurrentEXP>\\S+) \\/ (?P<MaxEXP>\\S+)"
+ }
+ },
+ "LEATHERWORKER": {
+ "LEVEL": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(5) > div:nth-child(2)"
+ },
+ "UNLOCKSTATE": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(5) > div:nth-child(3)"
+ },
+ "EXP": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(5) > div:nth-child(4)",
+ "regex": "(?P<CurrentEXP>\\S+) \\/ (?P<MaxEXP>\\S+)"
+ }
+ },
+ "WEAVER": {
+ "LEVEL": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(6) > div:nth-child(2)"
+ },
+ "UNLOCKSTATE": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(6) > div:nth-child(3)"
+ },
+ "EXP": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(6) > div:nth-child(4)",
+ "regex": "(?P<CurrentEXP>\\S+) \\/ (?P<MaxEXP>\\S+)"
+ }
+ },
+ "ALCHEMIST": {
+ "LEVEL": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(7) > div:nth-child(2)"
+ },
+ "UNLOCKSTATE": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(7) > div:nth-child(3)"
+ },
+ "EXP": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(7) > div:nth-child(4)",
+ "regex": "(?P<CurrentEXP>\\S+) \\/ (?P<MaxEXP>\\S+)"
+ }
+ },
+ "CULINARIAN": {
+ "LEVEL": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(8) > div:nth-child(2)"
+ },
+ "UNLOCKSTATE": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(8) > div:nth-child(3)"
+ },
+ "EXP": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(1) > ul:nth-child(2) > li:nth-child(8) > div:nth-child(4)",
+ "regex": "(?P<CurrentEXP>\\S+) \\/ (?P<MaxEXP>\\S+)"
+ }
+ },
+ "MINER": {
+ "LEVEL": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(2) > ul:nth-child(2) > li:nth-child(1) > div:nth-child(2)"
+ },
+ "UNLOCKSTATE": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(2) > ul:nth-child(2) > li:nth-child(1) > div:nth-child(3)"
+ },
+ "EXP": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(2) > ul:nth-child(2) > li:nth-child(1) > div:nth-child(4)",
+ "regex": "(?P<CurrentEXP>\\S+) \\/ (?P<MaxEXP>\\S+)"
+ }
+ },
+ "BOTANIST": {
+ "LEVEL": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(2) > ul:nth-child(2) > li:nth-child(2) > div:nth-child(2)"
+ },
+ "UNLOCKSTATE": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(2) > ul:nth-child(2) > li:nth-child(2) > div:nth-child(3)"
+ },
+ "EXP": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(2) > ul:nth-child(2) > li:nth-child(2) > div:nth-child(4)",
+ "regex": "(?P<CurrentEXP>\\S+) \\/ (?P<MaxEXP>\\S+)"
+ }
+ },
+ "FISHER": {
+ "LEVEL": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(2) > ul:nth-child(2) > li:nth-child(3) > div:nth-child(2)"
+ },
+ "UNLOCKSTATE": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(2) > ul:nth-child(2) > li:nth-child(3) > div:nth-child(3)"
+ },
+ "EXP": {
+ "selector": "div.clearfix:nth-child(5) > div:nth-child(2) > ul:nth-child(2) > li:nth-child(3) > div:nth-child(4)",
+ "regex": "(?P<CurrentEXP>\\S+) \\/ (?P<MaxEXP>\\S+)"
+ }
+ }
+}
diff --git a/ffxiv/lodestone-css-selectors-0.52.0/profile/gearset.json b/ffxiv/lodestone-css-selectors-0.52.0/profile/gearset.json
new file mode 100644
index 0000000..9488f7d
--- /dev/null
+++ b/ffxiv/lodestone-css-selectors-0.52.0/profile/gearset.json
@@ -0,0 +1,527 @@
+{
+ "MAINHAND": {
+ "NAME": {
+ "selector": ".icon-c--0 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > h2:nth-child(2)"
+ },
+ "DB_LINK": {
+ "selector": ".icon-c--0 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > a:nth-child(1)"
+ },
+ "MIRAGE_NAME": {
+ "selector": ".icon-c--0 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > div:nth-child(3) > p:nth-child(2)"
+ },
+ "MIRAGE_DB_LINK": {
+ "selector": ".icon-c--0 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > div:nth-child(3) > p:nth-child(2) > a:nth-child(1)"
+ },
+ "STAIN": {
+ "selector": ".icon-c--0 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1)"
+ },
+ "MATERIA_1": {
+ "selector": ".icon-c--0 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(5) > ul:nth-child(7) > li:nth-child(1) > div:nth-child(2)",
+ "regex": "(?P<Name>.*)<br/>"
+ },
+ "MATERIA_2": {
+ "selector": ".icon-c--0 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(5) > ul:nth-child(7) > li:nth-child(2) > div:nth-child(2)",
+ "regex": "(?P<Name>.*)<br/>"
+ },
+ "MATERIA_3": {
+ "selector": ".icon-c--0 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(5) > ul:nth-child(7) > li:nth-child(3) > div:nth-child(2)",
+ "regex": "(?P<Name>.*)<br/>"
+ },
+ "MATERIA_4": {
+ "selector": ".icon-c--0 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(5) > ul:nth-child(7) > li:nth-child(4) > div:nth-child(2)",
+ "regex": "(?P<Name>.*)<br/>"
+ },
+ "MATERIA_5": {
+ "selector": ".icon-c--0 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(5) > ul:nth-child(7) > li:nth-child(5) > div:nth-child(2)",
+ "regex": "(?P<Name>.*)<br/>"
+ },
+ "CREATOR_NAME": {
+ "selector": ".icon-c--0 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(7) > div:nth-child(1) > a:nth-child(1)"
+ }
+ },
+ "OFFHAND": {
+ "NAME": {
+ "selector": ".icon-c--1 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > h2:nth-child(2)"
+ },
+ "DB_LINK": {
+ "selector": ".icon-c--1 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > a:nth-child(1)"
+ },
+ "MIRAGE_NAME": {
+ "selector": ".icon-c--1 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > div:nth-child(3) > p:nth-child(2)"
+ },
+ "MIRAGE_DB_LINK": {
+ "selector": ".icon-c--1 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > div:nth-child(3) > p:nth-child(2) > a:nth-child(1)"
+ },
+ "STAIN": {
+ "selector": ".icon-c--1 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1)"
+ },
+ "MATERIA_1": {
+ "selector": ".icon-c--1 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(5) > ul:nth-child(7) > li:nth-child(1) > div:nth-child(2)",
+ "regex": "(?P<Name>.*)<br/>"
+ },
+ "MATERIA_2": {
+ "selector": ".icon-c--1 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(5) > ul:nth-child(7) > li:nth-child(2) > div:nth-child(2)",
+ "regex": "(?P<Name>.*)<br/>"
+ },
+ "MATERIA_3": {
+ "selector": ".icon-c--1 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(5) > ul:nth-child(7) > li:nth-child(3) > div:nth-child(2)",
+ "regex": "(?P<Name>.*)<br/>"
+ },
+ "MATERIA_4": {
+ "selector": ".icon-c--1 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(5) > ul:nth-child(7) > li:nth-child(4) > div:nth-child(2)",
+ "regex": "(?P<Name>.*)<br/>"
+ },
+ "MATERIA_5": {
+ "selector": ".icon-c--1 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(5) > ul:nth-child(7) > li:nth-child(5) > div:nth-child(2)",
+ "regex": "(?P<Name>.*)<br/>"
+ },
+ "CREATOR_NAME": {
+ "selector": ".icon-c--1 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(7) > div:nth-child(1) > a:nth-child(1)"
+ }
+ },
+ "HEAD": {
+ "NAME": {
+ "selector": ".icon-c--2 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > h2:nth-child(2)"
+ },
+ "DB_LINK": {
+ "selector": ".icon-c--2 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > a:nth-child(1)"
+ },
+ "MIRAGE_NAME": {
+ "selector": ".icon-c--2 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > div:nth-child(3) > p:nth-child(2)"
+ },
+ "MIRAGE_DB_LINK": {
+ "selector": ".icon-c--2 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > div:nth-child(3) > p:nth-child(2) > a:nth-child(1)"
+ },
+ "STAIN": {
+ "selector": ".icon-c--2 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1)"
+ },
+ "MATERIA_1": {
+ "selector": ".icon-c--2 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(5) > ul:nth-child(7) > li:nth-child(1) > div:nth-child(2)",
+ "regex": "(?P<Name>.*)<br/>"
+ },
+ "MATERIA_2": {
+ "selector": ".icon-c--2 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(5) > ul:nth-child(7) > li:nth-child(2) > div:nth-child(2)",
+ "regex": "(?P<Name>.*)<br/>"
+ },
+ "MATERIA_3": {
+ "selector": ".icon-c--2 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(5) > ul:nth-child(7) > li:nth-child(3) > div:nth-child(2)",
+ "regex": "(?P<Name>.*)<br/>"
+ },
+ "MATERIA_4": {
+ "selector": ".icon-c--2 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(5) > ul:nth-child(7) > li:nth-child(4) > div:nth-child(2)",
+ "regex": "(?P<Name>.*)<br/>"
+ },
+ "MATERIA_5": {
+ "selector": ".icon-c--2 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(5) > ul:nth-child(7) > li:nth-child(5) > div:nth-child(2)",
+ "regex": "(?P<Name>.*)<br/>"
+ },
+ "CREATOR_NAME": {
+ "selector": ".icon-c--2 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(7) > div:nth-child(1) > a:nth-child(1)"
+ }
+ },
+ "BODY": {
+ "NAME": {
+ "selector": ".icon-c--3 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > h2:nth-child(2)"
+ },
+ "DB_LINK": {
+ "selector": ".icon-c--3 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > a:nth-child(1)"
+ },
+ "MIRAGE_NAME": {
+ "selector": ".icon-c--3 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > div:nth-child(3) > p:nth-child(2)"
+ },
+ "MIRAGE_DB_LINK": {
+ "selector": ".icon-c--3 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > div:nth-child(3) > p:nth-child(2) > a:nth-child(1)"
+ },
+ "STAIN": {
+ "selector": ".icon-c--3 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1)"
+ },
+ "MATERIA_1": {
+ "selector": ".icon-c--3 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(5) > ul:nth-child(7) > li:nth-child(1) > div:nth-child(2)",
+ "regex": "(?P<Name>.*)<br/>"
+ },
+ "MATERIA_2": {
+ "selector": ".icon-c--3 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(5) > ul:nth-child(7) > li:nth-child(2) > div:nth-child(2)",
+ "regex": "(?P<Name>.*)<br/>"
+ },
+ "MATERIA_3": {
+ "selector": ".icon-c--3 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(5) > ul:nth-child(7) > li:nth-child(3) > div:nth-child(2)",
+ "regex": "(?P<Name>.*)<br/>"
+ },
+ "MATERIA_4": {
+ "selector": ".icon-c--3 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(5) > ul:nth-child(7) > li:nth-child(4) > div:nth-child(2)",
+ "regex": "(?P<Name>.*)<br/>"
+ },
+ "MATERIA_5": {
+ "selector": ".icon-c--3 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(5) > ul:nth-child(7) > li:nth-child(5) > div:nth-child(2)",
+ "regex": "(?P<Name>.*)<br/>"
+ },
+ "CREATOR_NAME": {
+ "selector": ".icon-c--3 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(7) > div:nth-child(1) > a:nth-child(1)"
+ }
+ },
+ "HANDS": {
+ "NAME": {
+ "selector": ".icon-c--4 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > h2:nth-child(2)"
+ },
+ "DB_LINK": {
+ "selector": ".icon-c--4 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > a:nth-child(1)"
+ },
+ "MIRAGE_NAME": {
+ "selector": ".icon-c--4 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > div:nth-child(3) > p:nth-child(2)"
+ },
+ "MIRAGE_DB_LINK": {
+ "selector": ".icon-c--4 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > div:nth-child(3) > p:nth-child(2) > a:nth-child(1)"
+ },
+ "STAIN": {
+ "selector": ".icon-c--4 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1)"
+ },
+ "MATERIA_1": {
+ "selector": ".icon-c--4 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(5) > ul:nth-child(7) > li:nth-child(1) > div:nth-child(2)",
+ "regex": "(?P<Name>.*)<br/>"
+ },
+ "MATERIA_2": {
+ "selector": ".icon-c--4 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(5) > ul:nth-child(7) > li:nth-child(2) > div:nth-child(2)",
+ "regex": "(?P<Name>.*)<br/>"
+ },
+ "MATERIA_3": {
+ "selector": ".icon-c--4 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(5) > ul:nth-child(7) > li:nth-child(3) > div:nth-child(2)",
+ "regex": "(?P<Name>.*)<br/>"
+ },
+ "MATERIA_4": {
+ "selector": ".icon-c--4 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(5) > ul:nth-child(7) > li:nth-child(4) > div:nth-child(2)",
+ "regex": "(?P<Name>.*)<br/>"
+ },
+ "MATERIA_5": {
+ "selector": ".icon-c--4 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(5) > ul:nth-child(7) > li:nth-child(5) > div:nth-child(2)",
+ "regex": "(?P<Name>.*)<br/>"
+ },
+ "CREATOR_NAME": {
+ "selector": ".icon-c--4 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(7) > div:nth-child(1) > a:nth-child(1)"
+ }
+ },
+ "WAIST": {
+ "NAME": {
+ "selector": ".icon-c--5 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > h2:nth-child(2)"
+ },
+ "DB_LINK": {
+ "selector": ".icon-c--5 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > a:nth-child(1)"
+ },
+ "MIRAGE_NAME": {
+ "selector": ".icon-c--5 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > div:nth-child(3) > p:nth-child(2)"
+ },
+ "MIRAGE_DB_LINK": {
+ "selector": ".icon-c--5 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > div:nth-child(3) > p:nth-child(2) > a:nth-child(1)"
+ },
+ "STAIN": {
+ "selector": ".icon-c--5 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1)"
+ },
+ "MATERIA_1": {
+ "selector": ".icon-c--5 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(5) > ul:nth-child(7) > li:nth-child(1) > div:nth-child(2)",
+ "regex": "(?P<Name>.*)<br/>"
+ },
+ "MATERIA_2": {
+ "selector": ".icon-c--5 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(5) > ul:nth-child(7) > li:nth-child(2) > div:nth-child(2)",
+ "regex": "(?P<Name>.*)<br/>"
+ },
+ "MATERIA_3": {
+ "selector": ".icon-c--5 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(5) > ul:nth-child(7) > li:nth-child(3) > div:nth-child(2)",
+ "regex": "(?P<Name>.*)<br/>"
+ },
+ "MATERIA_4": {
+ "selector": ".icon-c--5 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(5) > ul:nth-child(7) > li:nth-child(4) > div:nth-child(2)",
+ "regex": "(?P<Name>.*)<br/>"
+ },
+ "MATERIA_5": {
+ "selector": ".icon-c--5 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(5) > ul:nth-child(7) > li:nth-child(5) > div:nth-child(2)",
+ "regex": "(?P<Name>.*)<br/>"
+ },
+ "CREATOR_NAME": {
+ "selector": ".icon-c--5 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(7) > div:nth-child(1) > a:nth-child(1)"
+ }
+ },
+ "LEGS": {
+ "NAME": {
+ "selector": ".icon-c--6 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > h2:nth-child(2)"
+ },
+ "DB_LINK": {
+ "selector": ".icon-c--6 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > a:nth-child(1)"
+ },
+ "MIRAGE_NAME": {
+ "selector": ".icon-c--6 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > div:nth-child(3) > p:nth-child(2)"
+ },
+ "MIRAGE_DB_LINK": {
+ "selector": ".icon-c--6 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > div:nth-child(3) > p:nth-child(2) > a:nth-child(1)"
+ },
+ "STAIN": {
+ "selector": ".icon-c--6 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1)"
+ },
+ "MATERIA_1": {
+ "selector": ".icon-c--6 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(5) > ul:nth-child(7) > li:nth-child(1) > div:nth-child(2)",
+ "regex": "(?P<Name>.*)<br/>"
+ },
+ "MATERIA_2": {
+ "selector": ".icon-c--6 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(5) > ul:nth-child(7) > li:nth-child(2) > div:nth-child(2)",
+ "regex": "(?P<Name>.*)<br/>"
+ },
+ "MATERIA_3": {
+ "selector": ".icon-c--6 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(5) > ul:nth-child(7) > li:nth-child(3) > div:nth-child(2)",
+ "regex": "(?P<Name>.*)<br/>"
+ },
+ "MATERIA_4": {
+ "selector": ".icon-c--6 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(5) > ul:nth-child(7) > li:nth-child(4) > div:nth-child(2)",
+ "regex": "(?P<Name>.*)<br/>"
+ },
+ "MATERIA_5": {
+ "selector": ".icon-c--6 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(5) > ul:nth-child(7) > li:nth-child(5) > div:nth-child(2)",
+ "regex": "(?P<Name>.*)<br/>"
+ },
+ "CREATOR_NAME": {
+ "selector": ".icon-c--6 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(7) > div:nth-child(1) > a:nth-child(1)"
+ }
+ },
+ "FEET": {
+ "NAME": {
+ "selector": ".icon-c--7 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > h2:nth-child(2)"
+ },
+ "DB_LINK": {
+ "selector": ".icon-c--7 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > a:nth-child(1)"
+ },
+ "MIRAGE_NAME": {
+ "selector": ".icon-c--7 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > div:nth-child(3) > p:nth-child(2)"
+ },
+ "MIRAGE_DB_LINK": {
+ "selector": ".icon-c--7 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > div:nth-child(3) > p:nth-child(2) > a:nth-child(1)"
+ },
+ "STAIN": {
+ "selector": ".icon-c--7 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1)"
+ },
+ "MATERIA_1": {
+ "selector": ".icon-c--7 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(5) > ul:nth-child(7) > li:nth-child(1) > div:nth-child(2)",
+ "regex": "(?P<Name>.*)<br/>"
+ },
+ "MATERIA_2": {
+ "selector": ".icon-c--7 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(5) > ul:nth-child(7) > li:nth-child(2) > div:nth-child(2)",
+ "regex": "(?P<Name>.*)<br/>"
+ },
+ "MATERIA_3": {
+ "selector": ".icon-c--7 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(5) > ul:nth-child(7) > li:nth-child(3) > div:nth-child(2)",
+ "regex": "(?P<Name>.*)<br/>"
+ },
+ "MATERIA_4": {
+ "selector": ".icon-c--7 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(5) > ul:nth-child(7) > li:nth-child(4) > div:nth-child(2)",
+ "regex": "(?P<Name>.*)<br/>"
+ },
+ "MATERIA_5": {
+ "selector": ".icon-c--7 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(5) > ul:nth-child(7) > li:nth-child(5) > div:nth-child(2)",
+ "regex": "(?P<Name>.*)<br/>"
+ },
+ "CREATOR_NAME": {
+ "selector": ".icon-c--7 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(7) > div:nth-child(1) > a:nth-child(1)"
+ }
+ },
+ "EARRINGS": {
+ "NAME": {
+ "selector": ".icon-c--8 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > h2:nth-child(2)"
+ },
+ "DB_LINK": {
+ "selector": ".icon-c--8 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > a:nth-child(1)"
+ },
+ "MIRAGE_NAME": {
+ "selector": ".icon-c--8 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > div:nth-child(3) > p:nth-child(2)"
+ },
+ "MIRAGE_DB_LINK": {
+ "selector": ".icon-c--8 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > div:nth-child(3) > p:nth-child(2) > a:nth-child(1)"
+ },
+ "STAIN": {
+ "selector": ".icon-c--8 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1)"
+ },
+ "MATERIA_1": {
+ "selector": ".icon-c--8 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(5) > ul:nth-child(7) > li:nth-child(1) > div:nth-child(2)",
+ "regex": "(?P<Name>.*)<br/>"
+ },
+ "MATERIA_2": {
+ "selector": ".icon-c--8 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(5) > ul:nth-child(7) > li:nth-child(2) > div:nth-child(2)",
+ "regex": "(?P<Name>.*)<br/>"
+ },
+ "MATERIA_3": {
+ "selector": ".icon-c--8 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(5) > ul:nth-child(7) > li:nth-child(3) > div:nth-child(2)",
+ "regex": "(?P<Name>.*)<br/>"
+ },
+ "MATERIA_4": {
+ "selector": ".icon-c--8 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(5) > ul:nth-child(7) > li:nth-child(4) > div:nth-child(2)",
+ "regex": "(?P<Name>.*)<br/>"
+ },
+ "MATERIA_5": {
+ "selector": ".icon-c--8 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(5) > ul:nth-child(7) > li:nth-child(5) > div:nth-child(2)",
+ "regex": "(?P<Name>.*)<br/>"
+ },
+ "CREATOR_NAME": {
+ "selector": ".icon-c--8 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(7) > div:nth-child(1) > a:nth-child(1)"
+ }
+ },
+ "NECKLACE": {
+ "NAME": {
+ "selector": ".icon-c--9 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > h2:nth-child(2)"
+ },
+ "DB_LINK": {
+ "selector": ".icon-c--9 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > a:nth-child(1)"
+ },
+ "MIRAGE_NAME": {
+ "selector": ".icon-c--9 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > div:nth-child(3) > p:nth-child(2)"
+ },
+ "MIRAGE_DB_LINK": {
+ "selector": ".icon-c--9 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > div:nth-child(3) > p:nth-child(2) > a:nth-child(1)"
+ },
+ "STAIN": {
+ "selector": ".icon-c--9 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1)"
+ },
+ "MATERIA_1": {
+ "selector": ".icon-c--9 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(5) > ul:nth-child(7) > li:nth-child(1) > div:nth-child(2)",
+ "regex": "(?P<Name>.*)<br/>"
+ },
+ "MATERIA_2": {
+ "selector": ".icon-c--9 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(5) > ul:nth-child(7) > li:nth-child(2) > div:nth-child(2)",
+ "regex": "(?P<Name>.*)<br/>"
+ },
+ "MATERIA_3": {
+ "selector": ".icon-c--9 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(5) > ul:nth-child(7) > li:nth-child(3) > div:nth-child(2)",
+ "regex": "(?P<Name>.*)<br/>"
+ },
+ "MATERIA_4": {
+ "selector": ".icon-c--9 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(5) > ul:nth-child(7) > li:nth-child(4) > div:nth-child(2)",
+ "regex": "(?P<Name>.*)<br/>"
+ },
+ "MATERIA_5": {
+ "selector": ".icon-c--9 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(5) > ul:nth-child(7) > li:nth-child(5) > div:nth-child(2)",
+ "regex": "(?P<Name>.*)<br/>"
+ },
+ "CREATOR_NAME": {
+ "selector": ".icon-c--9 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(7) > div:nth-child(1) > a:nth-child(1)"
+ }
+ },
+ "BRACELETS": {
+ "NAME": {
+ "selector": ".icon-c--10 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > h2:nth-child(2)"
+ },
+ "DB_LINK": {
+ "selector": ".icon-c--10 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > a:nth-child(1)"
+ },
+ "MIRAGE_NAME": {
+ "selector": ".icon-c--10 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > div:nth-child(3) > p:nth-child(2)"
+ },
+ "MIRAGE_DB_LINK": {
+ "selector": ".icon-c--10 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > div:nth-child(3) > p:nth-child(2) > a:nth-child(1)"
+ },
+ "STAIN": {
+ "selector": ".icon-c--10 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1)"
+ },
+ "MATERIA_1": {
+ "selector": ".icon-c--10 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(5) > ul:nth-child(7) > li:nth-child(1) > div:nth-child(2)",
+ "regex": "(?P<Name>.*)<br/>"
+ },
+ "MATERIA_2": {
+ "selector": ".icon-c--10 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(5) > ul:nth-child(7) > li:nth-child(2) > div:nth-child(2)",
+ "regex": "(?P<Name>.*)<br/>"
+ },
+ "MATERIA_3": {
+ "selector": ".icon-c--10 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(5) > ul:nth-child(7) > li:nth-child(3) > div:nth-child(2)",
+ "regex": "(?P<Name>.*)<br/>"
+ },
+ "MATERIA_4": {
+ "selector": ".icon-c--10 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(5) > ul:nth-child(7) > li:nth-child(4) > div:nth-child(2)",
+ "regex": "(?P<Name>.*)<br/>"
+ },
+ "MATERIA_5": {
+ "selector": ".icon-c--10 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(5) > ul:nth-child(7) > li:nth-child(5) > div:nth-child(2)",
+ "regex": "(?P<Name>.*)<br/>"
+ },
+ "CREATOR_NAME": {
+ "selector": ".icon-c--10 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(7) > div:nth-child(1) > a:nth-child(1)"
+ }
+ },
+ "RING1": {
+ "NAME": {
+ "selector": ".icon-c--11 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > h2:nth-child(2)"
+ },
+ "DB_LINK": {
+ "selector": ".icon-c--11 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > a:nth-child(1)"
+ },
+ "MIRAGE_NAME": {
+ "selector": ".icon-c--11 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > div:nth-child(3) > p:nth-child(2)"
+ },
+ "MIRAGE_DB_LINK": {
+ "selector": ".icon-c--11 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > div:nth-child(3) > p:nth-child(2) > a:nth-child(1)"
+ },
+ "STAIN": {
+ "selector": ".icon-c--11 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1)"
+ },
+ "MATERIA_1": {
+ "selector": ".icon-c--11 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(5) > ul:nth-child(7) > li:nth-child(1) > div:nth-child(2)",
+ "regex": "(?P<Name>.*)<br/>"
+ },
+ "MATERIA_2": {
+ "selector": ".icon-c--11 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(5) > ul:nth-child(7) > li:nth-child(2) > div:nth-child(2)",
+ "regex": "(?P<Name>.*)<br/>"
+ },
+ "MATERIA_3": {
+ "selector": ".icon-c--11 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(5) > ul:nth-child(7) > li:nth-child(3) > div:nth-child(2)",
+ "regex": "(?P<Name>.*)<br/>"
+ },
+ "MATERIA_4": {
+ "selector": ".icon-c--11 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(5) > ul:nth-child(7) > li:nth-child(4) > div:nth-child(2)",
+ "regex": "(?P<Name>.*)<br/>"
+ },
+ "MATERIA_5": {
+ "selector": ".icon-c--11 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(5) > ul:nth-child(7) > li:nth-child(5) > div:nth-child(2)",
+ "regex": "(?P<Name>.*)<br/>"
+ },
+ "CREATOR_NAME": {
+ "selector": ".icon-c--11 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(7) > div:nth-child(1) > a:nth-child(1)"
+ }
+ },
+ "RING2": {
+ "NAME": {
+ "selector": ".icon-c--12 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > h2:nth-child(2)"
+ },
+ "DB_LINK": {
+ "selector": ".icon-c--12 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > a:nth-child(1)"
+ },
+ "MIRAGE_NAME": {
+ "selector": ".icon-c--12 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > div:nth-child(3) > p:nth-child(2)"
+ },
+ "MIRAGE_DB_LINK": {
+ "selector": ".icon-c--12 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > div:nth-child(3) > p:nth-child(2) > a:nth-child(1)"
+ },
+ "STAIN": {
+ "selector": ".icon-c--12 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1)"
+ },
+ "MATERIA_1": {
+ "selector": ".icon-c--12 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(5) > ul:nth-child(7) > li:nth-child(1) > div:nth-child(2)",
+ "regex": "(?P<Name>.*)<br/>"
+ },
+ "MATERIA_2": {
+ "selector": ".icon-c--12 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(5) > ul:nth-child(7) > li:nth-child(2) > div:nth-child(2)",
+ "regex": "(?P<Name>.*)<br/>"
+ },
+ "MATERIA_3": {
+ "selector": ".icon-c--12 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(5) > ul:nth-child(7) > li:nth-child(3) > div:nth-child(2)",
+ "regex": "(?P<Name>.*)<br/>"
+ },
+ "MATERIA_4": {
+ "selector": ".icon-c--12 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(5) > ul:nth-child(7) > li:nth-child(4) > div:nth-child(2)",
+ "regex": "(?P<Name>.*)<br/>"
+ },
+ "MATERIA_5": {
+ "selector": ".icon-c--12 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(5) > ul:nth-child(7) > li:nth-child(5) > div:nth-child(2)",
+ "regex": "(?P<Name>.*)<br/>"
+ },
+ "CREATOR_NAME": {
+ "selector": ".icon-c--12 > .db-tooltip > div:nth-child(1) > div:nth-child(1) > div:nth-child(7) > div:nth-child(1) > a:nth-child(1)"
+ }
+ },
+ "SOULCRYSTAL": {
+ "NAME": {
+ "selector": ".icon-c--13 > div:nth-child(3) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > h2:nth-child(2)"
+ }
+ }
+} \ No newline at end of file
diff --git a/ffxiv/lodestone-css-selectors-0.52.0/profile/minion.json b/ffxiv/lodestone-css-selectors-0.52.0/profile/minion.json
new file mode 100644
index 0000000..05e22de
--- /dev/null
+++ b/ffxiv/lodestone-css-selectors-0.52.0/profile/minion.json
@@ -0,0 +1,18 @@
+{
+ "MINIONS": {
+ "ROOT": {
+ "selector": ".minion__list__item",
+ "multiple": true
+ },
+ "NAME": {
+ "selector": ".minion__name"
+ },
+ "ICON": {
+ "selector": ".minion__list__icon__image",
+ "attribute": "src"
+ }
+ },
+ "TOTAL": {
+ "selector": ".minion__sort__total > span:nth-child(1)"
+ }
+} \ No newline at end of file
diff --git a/ffxiv/lodestone-css-selectors-0.52.0/profile/mount.json b/ffxiv/lodestone-css-selectors-0.52.0/profile/mount.json
new file mode 100644
index 0000000..5bca606
--- /dev/null
+++ b/ffxiv/lodestone-css-selectors-0.52.0/profile/mount.json
@@ -0,0 +1,18 @@
+{
+ "MOUNTS": {
+ "ROOT": {
+ "selector": ".mount__list__item",
+ "multiple": true
+ },
+ "NAME": {
+ "selector": ".mount__name"
+ },
+ "ICON": {
+ "selector": ".mount__list__icon__image",
+ "attribute": "src"
+ }
+ },
+ "TOTAL": {
+ "selector": ".minion__sort__total > span:nth-child(1)"
+ }
+} \ No newline at end of file
diff --git a/ffxiv/lodestone-css-selectors-0.52.0/pvpteam/members.json b/ffxiv/lodestone-css-selectors-0.52.0/pvpteam/members.json
new file mode 100644
index 0000000..2dd507f
--- /dev/null
+++ b/ffxiv/lodestone-css-selectors-0.52.0/pvpteam/members.json
@@ -0,0 +1,39 @@
+{
+ "ROOT": {
+ "selector": ".pvpteam__member"
+ },
+ "ENTRY": {
+ "ROOT": {
+ "selector": "div.entry",
+ "multiple": true
+ },
+ "AVATAR": {
+ "selector": ".entry__chara__face img",
+ "attribute": "src"
+ },
+ "ID": {
+ "selector": ".entry__bg",
+ "attribute": "href",
+ "regex": "/lodestone/character/(?P<ID>\\d*)/"
+ },
+ "NAME": {
+ "selector": ".entry__name"
+ },
+ "MATCHES": {
+ "selector": ".entry__freecompany__info > li:last-of-type > span"
+ },
+ "RANK": {
+ "selector": ".entry__freecompany__info > .js__tooltip",
+ "attribute": "data-tooltip",
+ "regex": "/ (?P<RankName>.+)"
+ },
+ "RANK_ICON": {
+ "selector": ".entry__freecompany__info > .js__tooltip > img",
+ "attribute": "src"
+ },
+ "SERVER": {
+ "selector": ".entry__world",
+ "regex": "(?P<World>\\w*)\\s+\\[(?P<DC>\\w*)\\]"
+ }
+ }
+}
diff --git a/ffxiv/lodestone-css-selectors-0.52.0/pvpteam/pvpteam.json b/ffxiv/lodestone-css-selectors-0.52.0/pvpteam/pvpteam.json
new file mode 100644
index 0000000..6bb7cf8
--- /dev/null
+++ b/ffxiv/lodestone-css-selectors-0.52.0/pvpteam/pvpteam.json
@@ -0,0 +1,26 @@
+{
+ "NAME": {
+ "selector": ".entry__pvpteam__name--team"
+ },
+ "DC": {
+ "selector": ".entry__pvpteam__name--dc"
+ },
+ "FORMED": {
+ "selector": ".entry__pvpteam__data--formed > script",
+ "regex": ".*ldst_strftime\\((?P<Timestamp>\\d*)"
+ },
+ "CREST_LAYERS": {
+ "BOTTOM": {
+ "selector": ".entry__pvpteam__crest__image > img:nth-child(1)",
+ "attribute": "src"
+ },
+ "MIDDLE": {
+ "selector": ".entry__pvpteam__crest__image > img:nth-child(2)",
+ "attribute": "src"
+ },
+ "TOP": {
+ "selector": ".entry__pvpteam__crest__image > img:nth-child(3)",
+ "attribute": "src"
+ }
+ }
+} \ No newline at end of file
diff --git a/ffxiv/lodestone-css-selectors-0.52.0/search/character.json b/ffxiv/lodestone-css-selectors-0.52.0/search/character.json
new file mode 100644
index 0000000..7ae9c00
--- /dev/null
+++ b/ffxiv/lodestone-css-selectors-0.52.0/search/character.json
@@ -0,0 +1,50 @@
+{
+ "ROOT": {
+ "selector": ".ldst__window"
+ },
+ "ENTRY": {
+ "ROOT": {
+ "selector": "div.entry",
+ "multiple": true
+ },
+ "AVATAR": {
+ "selector": ".entry__chara__face > img",
+ "attribute": "src"
+ },
+ "ID": {
+ "selector": ".entry__link",
+ "attribute": "href",
+ "regex": "/lodestone/character/(?P<ID>\\d*)/"
+ },
+ "LANG": {
+ "selector": ".entry__chara__lang"
+ },
+ "NAME": {
+ "selector": ".entry__name"
+ },
+ "RANK": {
+ "selector": ".entry__chara_info > .js__tooltip",
+ "attribute": "data-tooltip",
+ "regex": "/ (?P<RankName>.+)"
+ },
+ "RANK_ICON": {
+ "selector": ".entry__chara_info > .js__tooltip > img",
+ "attribute": "src"
+ },
+ "SERVER": {
+ "selector": ".entry__world",
+ "regex": "(?P<World>\\w*)\\s+\\[(?P<DC>\\w*)\\]"
+ }
+ },
+ "LIST_NEXT_BUTTON": {
+ "selector": "ul.btn__pager > li:nth-child(4) > a:nth-child(1)",
+ "attribute": "href"
+ },
+ "PAGE_INFO": {
+ "selector": "ul.btn__pager > li:nth-child(3)",
+ "regex": "\\D*(?P<CurrentPage>\\d+)\\D*(?P<NumPages>\\d+)"
+ },
+ "NO_RESULTS_FOUND": {
+ "selector": ".parts__zero"
+ }
+}
diff --git a/ffxiv/lodestone-css-selectors-0.52.0/search/cwls.json b/ffxiv/lodestone-css-selectors-0.52.0/search/cwls.json
new file mode 100644
index 0000000..7efe25a
--- /dev/null
+++ b/ffxiv/lodestone-css-selectors-0.52.0/search/cwls.json
@@ -0,0 +1,36 @@
+{
+ "ROOT": {
+ "selector": ".ldst__window"
+ },
+ "ENTRY": {
+ "ROOT": {
+ "selector": "div.entry",
+ "multiple": true
+ },
+ "ID": {
+ "selector": ".entry__link--line",
+ "attribute": "href",
+ "regex": "/lodestone/crossworld_linkshell/(?P<ID>\\w*)/"
+ },
+ "NAME": {
+ "selector": ".entry__name"
+ },
+ "DC": {
+ "selector": ".entry__world"
+ },
+ "ACTIVE_MEMBERS": {
+ "selector": ".entry__linkshell__member > div > span"
+ }
+ },
+ "PAGE_INFO": {
+ "selector": "ul.btn__pager:nth-child(6) > li:nth-child(3)",
+ "regex": "\\D*(?P<CurrentPage>\\d+)\\D*(?P<NumPages>\\d+)"
+ },
+ "LIST_NEXT_BUTTON": {
+ "selector": "ul.btn__pager > li:nth-child(4) > a:nth-child(1)",
+ "attribute": "href"
+ },
+ "NO_RESULTS_FOUND": {
+ "selector": ".parts__zero"
+ }
+}
diff --git a/ffxiv/lodestone-css-selectors-0.52.0/search/freecompany.json b/ffxiv/lodestone-css-selectors-0.52.0/search/freecompany.json
new file mode 100644
index 0000000..90f0bbe
--- /dev/null
+++ b/ffxiv/lodestone-css-selectors-0.52.0/search/freecompany.json
@@ -0,0 +1,69 @@
+{
+ "ROOT": {
+ "selector": ".ldst__window"
+ },
+ "ENTRY": {
+ "ROOT": {
+ "selector": "div.entry",
+ "multiple": true
+ },
+ "CREST_LAYERS": {
+ "BOTTOM": {
+ "selector": ".entry__freecompany__crest__image > img:nth-child(1)",
+ "attribute": "src"
+ },
+ "MIDDLE": {
+ "selector": ".entry__freecompany__crest__image > img:nth-child(2)",
+ "attribute": "src"
+ },
+ "TOP": {
+ "selector": ".entry__freecompany__crest__image > img:nth-child(3)",
+ "attribute": "src"
+ }
+ },
+ "ID": {
+ "selector": ".entry__block",
+ "attribute": "href",
+ "regex": "/lodestone/freecompany/(?P<ID>\\d*)/"
+ },
+ "GRAND_COMPANY": {
+ "selector": ".entry__world:nth-child(1)"
+ },
+ "NAME": {
+ "selector": ".entry__name"
+ },
+ "SERVER": {
+ "selector": ".entry__world:nth-child(3)",
+ "regex": "(?P<World>\\w*)\\s+\\[(?P<DC>\\w*)\\]"
+ },
+ "ACTIVE": {
+ "selector": "li.entry__freecompany__fc-active:nth-child(4)",
+ "regex": "Active:\\s+(?P<State>\\w*)"
+ },
+ "ACTIVE_MEMBERS": {
+ "selector": ".entry__freecompany__fc-member"
+ },
+ "RECRUITMENT_OPEN": {
+ "selector": "li.entry__freecompany__fc-active:nth-child(5)",
+ "regex": "Recruitment:\\s+(?P<State>\\w*)"
+ },
+ "ESTATE_BUILT": {
+ "selector": ".entry__freecompany__fc-housing"
+ },
+ "FORMED": {
+ "selector": ".entry__freecompany__fc-day > script",
+ "regex": ".*ldst_strftime\\((?P<Timestamp>\\d*)"
+ }
+ },
+ "PAGE_INFO": {
+ "selector": "ul.btn__pager:nth-child(6) > li:nth-child(3)",
+ "regex": "\\D*(?P<CurrentPage>\\d+)\\D*(?P<NumPages>\\d+)"
+ },
+ "LIST_NEXT_BUTTON": {
+ "selector": "ul.btn__pager > li:nth-child(4) > a:nth-child(1)",
+ "attribute": "href"
+ },
+ "NO_RESULTS_FOUND": {
+ "selector": ".parts__zero"
+ }
+}
diff --git a/ffxiv/lodestone-css-selectors-0.52.0/search/linkshell.json b/ffxiv/lodestone-css-selectors-0.52.0/search/linkshell.json
new file mode 100644
index 0000000..f9c6bc0
--- /dev/null
+++ b/ffxiv/lodestone-css-selectors-0.52.0/search/linkshell.json
@@ -0,0 +1,37 @@
+{
+ "ROOT": {
+ "selector": ".ldst__window"
+ },
+ "ENTRY": {
+ "ROOT": {
+ "selector": "div.entry",
+ "multiple": true
+ },
+ "ID": {
+ "selector": ".entry__link--line",
+ "attribute": "href",
+ "regex": "/lodestone/linkshell/(?P<ID>\\d*)/"
+ },
+ "NAME": {
+ "selector": ".entry__name"
+ },
+ "SERVER": {
+ "selector": ".entry__world",
+ "regex": "(?P<World>\\w*)\\s+\\[(?P<DC>\\w*)\\]"
+ },
+ "ACTIVE_MEMBERS": {
+ "selector": ".entry__linkshell__member > div > span"
+ }
+ },
+ "PAGE_INFO": {
+ "selector": "ul.btn__pager:nth-child(6) > li:nth-child(3)",
+ "regex": "\\D*(?P<CurrentPage>\\d+)\\D*(?P<NumPages>\\d+)"
+ },
+ "LIST_NEXT_BUTTON": {
+ "selector": "ul.btn__pager > li:nth-child(4) > a:nth-child(1)",
+ "attribute": "href"
+ },
+ "NO_RESULTS_FOUND": {
+ "selector": ".parts__zero"
+ }
+}
diff --git a/ffxiv/lodestone-css-selectors-0.52.0/search/pvpteam.json b/ffxiv/lodestone-css-selectors-0.52.0/search/pvpteam.json
new file mode 100644
index 0000000..ae1c51d
--- /dev/null
+++ b/ffxiv/lodestone-css-selectors-0.52.0/search/pvpteam.json
@@ -0,0 +1,47 @@
+{
+ "ROOT": {
+ "selector": ".ldst__window"
+ },
+ "ENTRY": {
+ "ROOT": {
+ "selector": "div.entry",
+ "multiple": true
+ },
+ "CREST_LAYERS": {
+ "BOTTOM": {
+ "selector": ".entry__pvpteam__search__crest__image > img:nth-child(1)",
+ "attribute": "src"
+ },
+ "MIDDLE": {
+ "selector": ".entry__pvpteam__search__crest__image > img:nth-child(2)",
+ "attribute": "src"
+ },
+ "TOP": {
+ "selector": ".entry__pvpteam__search__crest__image > img:nth-child(3)",
+ "attribute": "src"
+ }
+ },
+ "ID": {
+ "selector": ".entry__block",
+ "attribute": "href",
+ "regex": "/lodestone/pvpteam/(?P<ID>\\w*)/"
+ },
+ "NAME": {
+ "selector": ".entry__name"
+ },
+ "DC": {
+ "selector": ".entry__world"
+ }
+ },
+ "PAGE_INFO": {
+ "selector": "ul.btn__pager:nth-child(6) > li:nth-child(3)",
+ "regex": "\\D*(?P<CurrentPage>\\d+)\\D*(?P<NumPages>\\d+)"
+ },
+ "LIST_NEXT_BUTTON": {
+ "selector": "ul.btn__pager > li:nth-child(4) > a:nth-child(1)",
+ "attribute": "href"
+ },
+ "NO_RESULTS_FOUND": {
+ "selector": ".parts__zero"
+ }
+}