faker 6 gadi atpakaļ
vecāks
revīzija
8643e45bfd
30 mainītis faili ar 3956 papildinājumiem un 327 dzēšanām
  1. 1 1
      .idea/misc.xml
  2. 1 1
      .idea/sports_collect.iml
  3. 505 105
      .idea/workspace.xml
  4. BIN
      collectSports/__pycache__/items.cpython-36.pyc
  5. BIN
      collectSports/__pycache__/settings.cpython-36.pyc
  6. 20 15
      collectSports/biz/__init__.py
  7. BIN
      collectSports/biz/__pycache__/__init__.cpython-36.pyc
  8. 3053 21
      collectSports/conf/hg0088.json
  9. 4 4
      collectSports/conf/settings.json
  10. 10 0
      collectSports/items.py
  11. 1 1
      collectSports/main.py
  12. 7 3
      collectSports/mcollect/hg0088/LinkPool.py
  13. 22 20
      collectSports/mcollect/hg0088/Resolver.py
  14. 27 13
      collectSports/mcollect/hg0088/Storage.py
  15. 5 5
      collectSports/mcollect/hg0088/__init__.py
  16. BIN
      collectSports/mcollect/hg0088/__pycache__/Storage.cpython-36.pyc
  17. BIN
      collectSports/mcollect/hg0088/__pycache__/__init__.cpython-36.pyc
  18. 64 64
      collectSports/mcollect/hg0088/fcache/hg0088.zaopan.js
  19. BIN
      collectSports/pipelines/__pycache__/sportslst.cpython-36.pyc
  20. 104 25
      collectSports/pipelines/sportslst.py
  21. 2 0
      collectSports/settings.py
  22. BIN
      collectSports/spiders/__pycache__/demo.cpython-36.pyc
  23. BIN
      collectSports/spiders/__pycache__/sports.cpython-36.pyc
  24. BIN
      collectSports/spiders/__pycache__/sportslst.cpython-36.pyc
  25. 3 3
      collectSports/spiders/demo.py
  26. 85 23
      collectSports/spiders/sports.py
  27. 14 19
      collectSports/spiders/sportslst.py
  28. 0 0
      collectSports/utils/__init__.py
  29. 19 0
      collectSports/utils/helper.py
  30. 9 4
      pycomm/mongo.py

+ 1 - 1
.idea/misc.xml

@@ -3,5 +3,5 @@
   <component name="JavaScriptSettings">
     <option name="languageLevel" value="ES6" />
   </component>
-  <component name="ProjectRootManager" version="2" project-jdk-name="Python 3.6" project-jdk-type="Python SDK" />
+  <component name="ProjectRootManager" version="2" project-jdk-name="Python 3.7" project-jdk-type="Python SDK" />
 </project>

+ 1 - 1
.idea/sports_collect.iml

@@ -2,7 +2,7 @@
 <module type="PYTHON_MODULE" version="4">
   <component name="NewModuleRootManager">
     <content url="file://$MODULE_DIR$" />
-    <orderEntry type="inheritedJdk" />
+    <orderEntry type="jdk" jdkName="Python 3.7" jdkType="Python SDK" />
     <orderEntry type="sourceFolder" forTests="false" />
     <orderEntry type="library" name="R User Library" level="project" />
     <orderEntry type="library" name="R Skeletons" level="application" />

+ 505 - 105
.idea/workspace.xml

@@ -1,22 +1,28 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
   <component name="ChangeListManager">
-    <list default="true" id="87e036c0-2f0b-4473-b850-18ac24a30c0e" name="Default Changelist" comment="">
-      <change afterPath="$PROJECT_DIR$/.idea/encodings.xml" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/.idea/misc.xml" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/.idea/modules.xml" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/.idea/sports_collect.iml" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/collectSports/mcollect/hg0088/fcache/hg0088.today.js" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/collectSports/biz/zqchain.py" beforeDir="false" afterPath="$PROJECT_DIR$/collectSports/biz/zqchain.py" afterDir="false" />
+    <list default="true" id="87e036c0-2f0b-4473-b850-18ac24a30c0e" name="Default Changelist" comment="'更新'">
+      <change afterPath="$PROJECT_DIR$/collectSports/utils/__init__.py" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/collectSports/utils/helper.py" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/.idea/misc.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/misc.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/.idea/sports_collect.iml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/sports_collect.iml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/collectSports/biz/__init__.py" beforeDir="false" afterPath="$PROJECT_DIR$/collectSports/biz/__init__.py" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/collectSports/conf/hg0088.json" beforeDir="false" afterPath="$PROJECT_DIR$/collectSports/conf/hg0088.json" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/collectSports/conf/settings.json" beforeDir="false" afterPath="$PROJECT_DIR$/collectSports/conf/settings.json" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/collectSports/items.py" beforeDir="false" afterPath="$PROJECT_DIR$/collectSports/items.py" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/collectSports/main.py" beforeDir="false" afterPath="$PROJECT_DIR$/collectSports/main.py" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/collectSports/mcollect/hg0088/LinkPool.py" beforeDir="false" afterPath="$PROJECT_DIR$/collectSports/mcollect/hg0088/LinkPool.py" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/collectSports/mcollect/hg0088/Resolver.py" beforeDir="false" afterPath="$PROJECT_DIR$/collectSports/mcollect/hg0088/Resolver.py" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/collectSports/mcollect/hg0088/Storage.py" beforeDir="false" afterPath="$PROJECT_DIR$/collectSports/mcollect/hg0088/Storage.py" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/collectSports/mcollect/hg0088/__init__.py" beforeDir="false" afterPath="$PROJECT_DIR$/collectSports/mcollect/hg0088/__init__.py" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/collectSports/mcollect/hg0088/fcache/hg0088.zaopan.js" beforeDir="false" afterPath="$PROJECT_DIR$/collectSports/mcollect/hg0088/fcache/hg0088.zaopan.js" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/collectSports/models/model.py" beforeDir="false" afterPath="$PROJECT_DIR$/collectSports/models/model.py" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/collectSports/pipelines.py" beforeDir="false" afterPath="$PROJECT_DIR$/collectSports/pipelines.py" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/collectSports/pipelines/sportslst.py" beforeDir="false" afterPath="$PROJECT_DIR$/collectSports/pipelines/sportslst.py" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/collectSports/settings.py" beforeDir="false" afterPath="$PROJECT_DIR$/collectSports/settings.py" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/collectSports/spiders/demo.py" beforeDir="false" afterPath="$PROJECT_DIR$/collectSports/spiders/demo.py" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/collectSports/spiders/sports.py" beforeDir="false" afterPath="$PROJECT_DIR$/collectSports/spiders/sports.py" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/collectSports/spiders/sportslst.py" beforeDir="false" afterPath="$PROJECT_DIR$/collectSports/spiders/sportslst.py" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/pycomm/mongo.py" beforeDir="false" afterPath="$PROJECT_DIR$/pycomm/mongo.py" afterDir="false" />
     </list>
     <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
     <option name="SHOW_DIALOG" value="false" />
@@ -25,15 +31,39 @@
     <option name="LAST_RESOLUTION" value="IGNORE" />
   </component>
   <component name="CoverageDataManager">
-    <SUITE FILE_PATH="coverage/sports_collect$main.coverage" NAME="main Coverage Results" MODIFIED="1560563101316" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/collectSports" />
+    <SUITE FILE_PATH="coverage/sports_collect$main.coverage" NAME="main Coverage Results" MODIFIED="1560765158051" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/collectSports" />
   </component>
   <component name="FileEditorManager">
-    <leaf>
+    <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
+      <file pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/collectSports/spiders/sports.py">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="-1406">
+              <caret line="39" column="26" lean-forward="true" selection-start-line="39" selection-start-column="26" selection-end-line="39" selection-end-column="26" />
+              <folding>
+                <element signature="e#24#35#0" expanded="true" />
+              </folding>
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file pinned="false" current-in-tab="true">
+        <entry file="file://$PROJECT_DIR$/collectSports/pipelines/sportslst.py">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="200">
+              <caret line="110" column="25" selection-start-line="110" selection-start-column="25" selection-end-line="110" selection-end-column="25" />
+              <folding>
+                <element signature="e#193#204#0" expanded="true" />
+              </folding>
+            </state>
+          </provider>
+        </entry>
+      </file>
       <file pinned="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/collectSports/mcollect/hg0088/Storage.py">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="540">
-              <caret line="30" column="48" lean-forward="true" selection-start-line="30" selection-start-column="48" selection-end-line="30" selection-end-column="48" />
+            <state relative-caret-position="147">
+              <caret line="79" column="33" lean-forward="true" selection-start-line="79" selection-start-column="6" selection-end-line="79" selection-end-column="33" />
               <folding>
                 <element signature="e#0#33#0" expanded="true" />
               </folding>
@@ -41,22 +71,77 @@
           </provider>
         </entry>
       </file>
-      <file pinned="false" current-in-tab="true">
-        <entry file="file://$PROJECT_DIR$/collectSports/models/model.py">
+      <file pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/collectSports/spiders/sportslst.py">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="-268">
+              <caret line="34" column="13" selection-start-line="34" selection-start-column="13" selection-end-line="34" selection-end-column="13" />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/collectSports/utils/helper.py">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="150">
+              <caret line="6" column="17" lean-forward="true" selection-start-line="6" selection-start-column="17" selection-end-line="6" selection-end-column="17" />
+              <folding>
+                <element signature="e#0#11#0" expanded="true" />
+              </folding>
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/collectSports/mcollect/hg0088/__init__.py">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="234">
-              <caret line="22" column="20" lean-forward="true" selection-start-line="22" selection-start-column="20" selection-end-line="22" selection-end-column="20" />
+            <state relative-caret-position="133">
+              <caret line="12" lean-forward="true" selection-start-line="12" selection-end-line="12" />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/collectSports/main.py">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="158">
+              <caret line="9" column="41" lean-forward="true" selection-start-line="9" selection-start-column="41" selection-end-line="9" selection-end-column="41" />
+              <folding>
+                <element signature="e#0#10#0" expanded="true" />
+              </folding>
             </state>
           </provider>
         </entry>
       </file>
     </leaf>
   </component>
+  <component name="FileTemplateManagerImpl">
+    <option name="RECENT_TEMPLATES">
+      <list>
+        <option value="Python Script" />
+      </list>
+    </option>
+  </component>
   <component name="FindInProjectRecents">
     <findStrings>
       <find>60313</find>
       <find>磐田山叶 -角球数</find>
+      <find>ZqLeagueItem</find>
+      <find>match_mode</find>
+      <find>zq_league</find>
+      <find>zq_competitions</find>
+      <find>update</find>
+      <find>insert</find>
+      <find>compe</find>
+      <find>&quot;st_zq_competition&quot;</find>
+      <find>zq_competition</find>
+      <find>guanjun</find>
+      <find>csource</find>
+      <find>CallInterFace</find>
     </findStrings>
+    <replaceStrings>
+      <replace />
+    </replaceStrings>
   </component>
   <component name="Git.Settings">
     <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
@@ -64,27 +149,41 @@
   <component name="IdeDocumentHistory">
     <option name="CHANGED_PATHS">
       <list>
-        <option value="$PROJECT_DIR$/collectSports/spiders/sportslst.py" />
         <option value="$PROJECT_DIR$/collectSports/models/model.py" />
         <option value="$PROJECT_DIR$/collectSports/pipelines.py" />
         <option value="$PROJECT_DIR$/collectSports/mcollect/hg0088/fcache/hg0088.zaopan.js" />
+        <option value="$PROJECT_DIR$/collectSports/spiders/sportslst.py" />
+        <option value="$PROJECT_DIR$/collectSports/items.py" />
+        <option value="$PROJECT_DIR$/collectSports/settings.py" />
+        <option value="$PROJECT_DIR$/collectSports/biz/__init__.py" />
+        <option value="$PROJECT_DIR$/collectSports/conf/settings.json" />
+        <option value="$PROJECT_DIR$/pycomm/mongo.py" />
         <option value="$PROJECT_DIR$/collectSports/mcollect/hg0088/Storage.py" />
+        <option value="$PROJECT_DIR$/collectSports/mcollect/hg0088/Resolver.py" />
+        <option value="$PROJECT_DIR$/collectSports/mcollect/hg0088/LinkPool.py" />
+        <option value="$PROJECT_DIR$/collectSports/spiders/demo.py" />
+        <option value="$PROJECT_DIR$/collectSports/conf/hg0088.json" />
+        <option value="$PROJECT_DIR$/collectSports/spiders/sports.py" />
+        <option value="$PROJECT_DIR$/collectSports/utils/call_interface.py" />
         <option value="$PROJECT_DIR$/collectSports/mcollect/hg0088/__init__.py" />
+        <option value="$PROJECT_DIR$/collectSports/utils/helper.py" />
+        <option value="$PROJECT_DIR$/collectSports/main.py" />
         <option value="$PROJECT_DIR$/collectSports/pipelines/sportslst.py" />
       </list>
     </option>
   </component>
   <component name="ProjectFrameBounds" extendedState="6">
-    <option name="x" value="-151" />
-    <option name="y" value="39" />
-    <option name="width" value="1936" />
-    <option name="height" value="1066" />
+    <option name="x" value="-57" />
+    <option name="y" value="108" />
+    <option name="width" value="1938" />
+    <option name="height" value="891" />
   </component>
   <component name="ProjectView">
     <navigator proportions="" version="1">
       <foldersAlwaysOnTop value="true" />
     </navigator>
     <panes>
+      <pane id="Scope" />
       <pane id="ProjectPane">
         <subPane>
           <expand>
@@ -116,20 +215,6 @@
               <item name="mcollect" type="462c0819:PsiDirectoryNode" />
               <item name="hg0088" type="462c0819:PsiDirectoryNode" />
             </path>
-            <path>
-              <item name="sports_collect" type="b2602c69:ProjectViewProjectNode" />
-              <item name="sports_collect" type="462c0819:PsiDirectoryNode" />
-              <item name="collectSports" type="462c0819:PsiDirectoryNode" />
-              <item name="mcollect" type="462c0819:PsiDirectoryNode" />
-              <item name="hg0088" type="462c0819:PsiDirectoryNode" />
-              <item name="fcache" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="sports_collect" type="b2602c69:ProjectViewProjectNode" />
-              <item name="sports_collect" type="462c0819:PsiDirectoryNode" />
-              <item name="collectSports" type="462c0819:PsiDirectoryNode" />
-              <item name="models" type="462c0819:PsiDirectoryNode" />
-            </path>
             <path>
               <item name="sports_collect" type="b2602c69:ProjectViewProjectNode" />
               <item name="sports_collect" type="462c0819:PsiDirectoryNode" />
@@ -145,20 +230,22 @@
             <path>
               <item name="sports_collect" type="b2602c69:ProjectViewProjectNode" />
               <item name="sports_collect" type="462c0819:PsiDirectoryNode" />
-              <item name="pycomm" type="462c0819:PsiDirectoryNode" />
+              <item name="collectSports" type="462c0819:PsiDirectoryNode" />
+              <item name="utils" type="462c0819:PsiDirectoryNode" />
             </path>
           </expand>
           <select />
         </subPane>
       </pane>
-      <pane id="Scope" />
     </panes>
   </component>
   <component name="PropertiesComponent">
+    <property name="SHARE_PROJECT_CONFIGURATION_FILES" value="true" />
     <property name="WebServerToolWindowFactoryState" value="false" />
     <property name="last_opened_file_path" value="$PROJECT_DIR$" />
     <property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" />
     <property name="nodejs_npm_path_reset_for_default_project" value="true" />
+    <property name="settings.editor.selected.configurable" value="com.jetbrains.python.configuration.PyActiveSdkModuleConfigurable" />
   </component>
   <component name="RecentsManager">
     <key name="CopyFile.RECENT_KEYS">
@@ -186,13 +273,13 @@
         <env name="PYTHONUNBUFFERED" value="1" />
       </envs>
       <option name="SDK_HOME" value="" />
-      <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/collectSports" />
+      <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
       <option name="IS_MODULE_SDK" value="true" />
       <option name="ADD_CONTENT_ROOTS" value="true" />
       <option name="ADD_SOURCE_ROOTS" value="true" />
       <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
       <option name="SCRIPT_NAME" value="$PROJECT_DIR$/collectSports/main.py" />
-      <option name="PARAMETERS" value="" />
+      <option name="PARAMETERS" value="0.0.0.0:8888" />
       <option name="SHOW_COMMAND_LINE" value="false" />
       <option name="EMULATE_TERMINAL" value="false" />
       <option name="MODULE_MODE" value="false" />
@@ -216,7 +303,14 @@
       <option name="number" value="Default" />
       <option name="presentableId" value="Default" />
       <updated>1560503478733</updated>
-      <workItem from="1560503481851" duration="7831000" />
+      <workItem from="1560503481851" duration="8226000" />
+      <workItem from="1560569123509" duration="24000" />
+      <workItem from="1560577738720" duration="12151000" />
+      <workItem from="1560733222825" duration="20421000" />
+      <workItem from="1560848283915" duration="215000" />
+      <workItem from="1560848805159" duration="1220000" />
+      <workItem from="1560906874868" duration="28010000" />
+      <workItem from="1560993078342" duration="14417000" />
     </task>
     <task id="LOCAL-00001" summary="'更新'">
       <created>1560503640918</created>
@@ -229,36 +323,61 @@
     <servers />
   </component>
   <component name="TimeTrackingManager">
-    <option name="totallyTimeSpent" value="7831000" />
+    <option name="totallyTimeSpent" value="84684000" />
   </component>
   <component name="ToolWindowManager">
-    <frame x="-8" y="-8" width="1936" height="1066" extended-state="6" />
+    <frame x="-7" y="-7" width="1295" height="695" extended-state="6" />
     <editor active="true" />
     <layout>
-      <window_info id="Favorites" side_tool="true" />
-      <window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.18336888" />
+      <window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.18027486" />
       <window_info id="Structure" order="1" side_tool="true" weight="0.25" />
-      <window_info anchor="bottom" id="Docker" show_stripe_button="false" />
-      <window_info anchor="bottom" id="Database Changes" />
-      <window_info anchor="bottom" id="Version Control" />
-      <window_info anchor="bottom" id="Python Console" />
-      <window_info anchor="bottom" id="Terminal" />
-      <window_info anchor="bottom" id="Event Log" side_tool="true" />
+      <window_info id="Favorites" order="2" side_tool="true" />
+      <window_info anchor="bottom" id="Message" order="0" />
+      <window_info anchor="bottom" id="Find" order="1" weight="0.3285968" />
+      <window_info anchor="bottom" id="Run" order="2" weight="0.5171674" />
+      <window_info anchor="bottom" id="Debug" order="3" visible="true" weight="0.43694493" />
+      <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
+      <window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
+      <window_info anchor="bottom" id="TODO" order="6" />
+      <window_info anchor="bottom" id="Docker" order="7" show_stripe_button="false" />
+      <window_info anchor="bottom" id="Version Control" order="8" />
+      <window_info anchor="bottom" id="Database Changes" order="9" />
+      <window_info anchor="bottom" id="Event Log" order="10" side_tool="true" />
+      <window_info anchor="bottom" id="Terminal" order="11" weight="0.32939914" />
+      <window_info anchor="bottom" id="Python Console" order="12" />
+      <window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
+      <window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
+      <window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" visible="true" weight="0.17542441" />
+      <window_info anchor="right" id="SciView" order="3" />
+      <window_info anchor="right" id="R Graphics" order="4" />
+      <window_info anchor="right" id="R Packages" order="5" />
+      <window_info anchor="right" id="Database" order="6" />
+    </layout>
+    <layout-to-restore>
+      <window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.19886823" />
+      <window_info id="Structure" order="1" side_tool="true" weight="0.25" />
+      <window_info id="Favorites" order="2" side_tool="true" />
       <window_info anchor="bottom" id="Message" order="0" />
       <window_info anchor="bottom" id="Find" order="1" />
-      <window_info anchor="bottom" id="Run" order="2" visible="true" weight="0.35193133" />
-      <window_info anchor="bottom" id="Debug" order="3" weight="0.39914164" />
+      <window_info anchor="bottom" id="Run" order="2" weight="0.5171674" />
+      <window_info active="true" anchor="bottom" id="Debug" order="3" visible="true" weight="0.56838363" />
       <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
       <window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
       <window_info anchor="bottom" id="TODO" order="6" />
-      <window_info anchor="right" id="Database" />
-      <window_info anchor="right" id="R Packages" />
-      <window_info anchor="right" id="SciView" />
-      <window_info anchor="right" id="R Graphics" />
+      <window_info anchor="bottom" id="Docker" order="7" show_stripe_button="false" />
+      <window_info anchor="bottom" id="Version Control" order="8" />
+      <window_info anchor="bottom" id="Database Changes" order="9" />
+      <window_info anchor="bottom" id="Event Log" order="10" side_tool="true" />
+      <window_info anchor="bottom" id="Terminal" order="11" weight="0.32939914" />
+      <window_info anchor="bottom" id="Python Console" order="12" />
       <window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
       <window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
       <window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
-    </layout>
+      <window_info anchor="right" id="SciView" order="3" />
+      <window_info anchor="right" id="R Graphics" order="4" />
+      <window_info anchor="right" id="R Packages" order="5" />
+      <window_info anchor="right" id="Database" order="6" />
+    </layout-to-restore>
   </component>
   <component name="TypeScriptGeneratedFilesManager">
     <option name="version" value="1" />
@@ -267,38 +386,150 @@
     <MESSAGE value="'更新'" />
     <option name="LAST_COMMIT_MESSAGE" value="'更新'" />
   </component>
+  <component name="XDebuggerManager">
+    <breakpoint-manager>
+      <breakpoints>
+        <line-breakpoint enabled="true" suspend="THREAD" type="python-line">
+          <url>file://$PROJECT_DIR$/collectSports/pipelines/sportslst.py</url>
+          <line>98</line>
+          <option name="timeStamp" value="33" />
+        </line-breakpoint>
+      </breakpoints>
+    </breakpoint-manager>
+    <watches-manager>
+      <configuration name="PythonConfigurationType">
+        <watch expression="int(match_time.group(1))" language="Python" />
+        <watch expression="current_time - datetime.datetime.strptime(match_date + match_time.group(0), &quot;%Y-%m-%d %H:%M:%S&quot;)" language="Python" />
+        <watch expression="match_date + ' ' + match_time.group(0)" language="Python" />
+        <watch expression="match_date + ' ' + match_time.group(0) + ':00'" language="Python" />
+        <watch expression="current_time - datetime.datetime.strptime(old_time, &quot;%Y-%m-%d %H:%M:%S&quot;)" language="Python" />
+        <watch expression="zq_league.get('uuid')" language="Python" />
+        <watch expression="match_time.group(1)" language="Python" />
+        <watch expression="(datetime.datetime.strptime(match_date, '%Y-%m-%d') + datetime.timedelta(days=1)).strftime('%Y-%m-%d')" language="Python" />
+        <watch expression="CallInterFace.post(url, league_list)" language="Python" />
+        <watch expression="item['guanjun']" language="Python" />
+        <watch expression="item['chain']" language="Python" />
+      </configuration>
+    </watches-manager>
+  </component>
+  <component name="com.intellij.coverage.CoverageDataManagerImpl">
+    <SUITE FILE_PATH="coverage/sports_collect$main.coverage" NAME="main Coverage Results" MODIFIED="1561008631179" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" />
+  </component>
+  <component name="debuggerHistoryManager">
+    <expressions id="watch">
+      <expression>
+        <expression-string>item['chain']</expression-string>
+        <language-id>Python</language-id>
+        <evaluation-mode>EXPRESSION</evaluation-mode>
+      </expression>
+      <expression>
+        <expression-string>item['guanjun']</expression-string>
+        <language-id>Python</language-id>
+        <evaluation-mode>EXPRESSION</evaluation-mode>
+      </expression>
+      <expression>
+        <expression-string>CallInterFace.post(url, league_list)</expression-string>
+        <language-id>Python</language-id>
+        <evaluation-mode>EXPRESSION</evaluation-mode>
+      </expression>
+      <expression>
+        <expression-string>(datetime.datetime.strptime(match_date, '%Y-%m-%d') + datetime.timedelta(days=1)).strftime('%Y-%m-%d')</expression-string>
+        <language-id>Python</language-id>
+        <evaluation-mode>EXPRESSION</evaluation-mode>
+      </expression>
+      <expression>
+        <expression-string>match_time.group(1)</expression-string>
+        <language-id>Python</language-id>
+        <evaluation-mode>EXPRESSION</evaluation-mode>
+      </expression>
+      <expression>
+        <expression-string>zq_league.get('uuid')[0]</expression-string>
+        <language-id>Python</language-id>
+        <evaluation-mode>EXPRESSION</evaluation-mode>
+      </expression>
+      <expression>
+        <expression-string>zq_league.get('uuid')</expression-string>
+        <language-id>Python</language-id>
+        <evaluation-mode>EXPRESSION</evaluation-mode>
+      </expression>
+      <expression>
+        <expression-string>current_time - datetime.datetime.strptime(old_time, &quot;%Y-%m-%d %H:%M:%S&quot;)</expression-string>
+        <language-id>Python</language-id>
+        <evaluation-mode>EXPRESSION</evaluation-mode>
+      </expression>
+      <expression>
+        <expression-string>match_date + ' ' + match_time.group(0) + ':00'</expression-string>
+        <language-id>Python</language-id>
+        <evaluation-mode>EXPRESSION</evaluation-mode>
+      </expression>
+      <expression>
+        <expression-string>atch_date + ' ' + match_time.group(0) + ':00'</expression-string>
+        <language-id>Python</language-id>
+        <evaluation-mode>EXPRESSION</evaluation-mode>
+      </expression>
+    </expressions>
+  </component>
   <component name="editorHistoryManager">
-    <entry file="file://$PROJECT_DIR$/pycomm/.gitignore">
+    <entry file="file://$PROJECT_DIR$/collectSports/mcollect/hg0088/tmpl/today.tmpl">
       <provider selected="true" editor-type-id="text-editor" />
     </entry>
-    <entry file="file://$PROJECT_DIR$/collectSports/main.py">
+    <entry file="file://$PROJECT_DIR$/collectSports/mcollect/hg0088/tmpl/zaopan.tmpl">
       <provider selected="true" editor-type-id="text-editor" />
     </entry>
-    <entry file="file://$PROJECT_DIR$/collectSports/spiders/sports.py">
+    <entry file="file://$PROJECT_DIR$/collectSports/pipelines.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="198">
+          <caret line="11" column="21" lean-forward="true" selection-start-line="11" selection-start-column="21" selection-end-line="11" selection-end-column="21" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/collectSports/models/zqMatch.py">
       <provider selected="true" editor-type-id="text-editor" />
     </entry>
-    <entry file="file://$USER_HOME$/AppData/Local/Programs/Python/Python36/Lib/site-packages/scrapy/http/response/__init__.py">
+    <entry file="file://$PROJECT_DIR$/collectSports/mcollect/hg0088/fcache/hg0088.zaopan.js">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="72">
-          <caret line="4" column="53" lean-forward="true" selection-start-line="4" selection-start-column="53" selection-end-line="4" selection-end-column="53" />
+        <state relative-caret-position="224">
+          <caret line="77" column="204" selection-start-line="77" selection-start-column="204" selection-end-line="77" selection-end-column="204" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/collectSports/models/__init__.py">
+    <entry file="file://$PROJECT_DIR$/collectSports/mcollect/hg0088/fcache/hg0088.today.js">
       <provider selected="true" editor-type-id="text-editor" />
     </entry>
-    <entry file="file://$PROJECT_DIR$/collectSports/models/zqChain.py">
-      <provider selected="true" editor-type-id="text-editor" />
+    <entry file="file://$USER_HOME$/AppData/Local/Programs/Python/Python36/Lib/site-packages/scrapy/item.py" />
+    <entry file="file://$PROJECT_DIR$/collectSports/models/model.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="396">
+          <caret line="22" column="20" selection-start-line="22" selection-start-column="20" selection-end-line="22" selection-end-column="20" />
+        </state>
+      </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/collectSports/mcollect/hg0088/tmpl/chain.tmpl">
+    <entry file="file://$PROJECT_DIR$/collectSports/settings.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="-108" />
+        <state relative-caret-position="456">
+          <caret line="92" selection-start-line="92" selection-end-line="92" />
+        </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/collectSports/mcollect/hg0088/tmpl/today.tmpl">
+    <entry file="file://$PROJECT_DIR$/pycomm/db.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="-858">
+          <caret line="15" column="40" lean-forward="true" selection-start-line="15" selection-start-column="40" selection-end-line="15" selection-end-column="40" />
+          <folding>
+            <element signature="e#47#61#0" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/collectSports/log/2019-06-15/14.err" />
+    <entry file="file://$PROJECT_DIR$/collectSports/log/2019-06-15/15.err" />
+    <entry file="file://$PROJECT_DIR$/collectSports/spiders/__init__.py">
       <provider selected="true" editor-type-id="text-editor" />
     </entry>
-    <entry file="file://$PROJECT_DIR$/collectSports/mcollect/hg0088/tmpl/zaopan.tmpl">
+    <entry file="file://$PROJECT_DIR$/collectSports/models/zqChain.py">
+      <provider selected="true" editor-type-id="text-editor" />
+    </entry>
+    <entry file="file://$PROJECT_DIR$/collectSports/models/zqLeague.py">
       <provider selected="true" editor-type-id="text-editor" />
     </entry>
     <entry file="file://$PROJECT_DIR$/collectSports/models/zqLeagueOut.py">
@@ -308,83 +539,252 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/collectSports/models/zqLeague.py">
+    <entry file="file://$PROJECT_DIR$/collectSports/pipelines/__init__.py">
       <provider selected="true" editor-type-id="text-editor" />
     </entry>
-    <entry file="file://$PROJECT_DIR$/collectSports/mcollect/hg0088/Resolver.py">
+    <entry file="file://$USER_HOME$/AppData/Local/Programs/Python/Python36/Lib/site-packages/scrapy/http/response/text.py" />
+    <entry file="file://$USER_HOME$/AppData/Local/Programs/Python/Python36/Lib/site-packages/twisted/internet/defer.py" />
+    <entry file="file://$USER_HOME$/AppData/Local/Programs/Python/Python36/Lib/site-packages/scrapy/http/response/__init__.py" />
+    <entry file="file://$PROJECT_DIR$/collectSports/conf/settings.json">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="100">
+          <caret line="4" column="18" lean-forward="true" selection-start-line="4" selection-start-column="18" selection-end-line="4" selection-end-column="18" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/collectSports/conf/hg0088.json">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="2076">
+          <caret line="2750" column="28" lean-forward="true" selection-start-line="2750" selection-start-column="28" selection-end-line="2750" selection-end-column="28" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://C:/ProgramData/Anaconda3/Lib/site-packages/pymongo/collection.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="116">
+          <caret line="152" selection-start-line="152" selection-end-line="152" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://C:/ProgramData/Anaconda3/Lib/site-packages/pymongo/database.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="116">
+          <caret line="298" selection-start-line="298" selection-end-line="298" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://C:/ProgramData/Anaconda3/Lib/site-packages/pymongo/mongo_client.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="222">
+          <caret line="511" selection-start-line="511" selection-end-line="511" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://C:/ProgramData/Anaconda3/Lib/site-packages/scrapy/item.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="116">
+          <caret line="58" selection-start-line="58" selection-end-line="58" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$USER_HOME$/.PyCharm2019.1/system/python_stubs/-313451744/builtins.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="133">
+          <caret line="259" column="7" lean-forward="true" selection-start-line="259" selection-start-column="7" selection-end-line="259" selection-end-column="7" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/pycomm/__init__.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="574">
-          <caret line="32" selection-start-line="32" selection-end-line="32" />
+        <state relative-caret-position="-175">
+          <caret line="23" selection-start-line="23" selection-end-line="23" />
           <folding>
-            <element signature="e#1#22#0" expanded="true" />
+            <element signature="e#47#62#0" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/collectSports/pipelines.py">
+    <entry file="file://C:/ProgramData/Anaconda3/Lib/site-packages/twisted/internet/defer.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="198">
-          <caret line="11" column="21" lean-forward="true" selection-start-line="11" selection-start-column="21" selection-end-line="11" selection-end-column="21" />
+        <state relative-caret-position="98">
+          <caret line="653" selection-start-line="653" selection-end-line="653" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/collectSports/spiders/sportslst.py">
+    <entry file="file://C:/ProgramData/Anaconda3/Lib/json/encoder.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="-19">
-          <caret line="55" selection-start-line="55" selection-end-line="55" />
+        <state relative-caret-position="98">
+          <caret line="178" selection-start-line="178" selection-end-line="178" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/collectSports/pipelines/__init__.py">
-      <provider selected="true" editor-type-id="text-editor" />
+    <entry file="file://$PROJECT_DIR$/collectSports/biz/__init__.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="225">
+          <caret line="9" column="4" selection-start-line="9" selection-start-column="4" selection-end-line="9" selection-end-column="4" />
+          <folding>
+            <element signature="e#0#13#0" expanded="true" />
+          </folding>
+        </state>
+      </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/collectSports/spiders/__init__.py">
-      <provider selected="true" editor-type-id="text-editor" />
+    <entry file="file://C:/ProgramData/Anaconda3/Lib/json/__init__.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="137">
+          <caret line="230" selection-start-line="230" selection-end-line="230" />
+        </state>
+      </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/collectSports/models/zqMatch.py">
-      <provider selected="true" editor-type-id="text-editor" />
+    <entry file="file://C:/ProgramData/Anaconda3/Lib/_strptime.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="96">
+          <caret line="576" selection-start-line="576" selection-end-line="576" />
+        </state>
+      </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/collectSports/mcollect/hg0088/fcache/hg0088.zaopan.js">
+    <entry file="file://C:/ProgramData/Anaconda3/Lib/_collections_abc.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="224">
-          <caret line="77" column="204" selection-start-line="77" selection-start-column="204" selection-end-line="77" selection-end-column="204" />
+        <state relative-caret-position="47">
+          <caret line="658" selection-start-line="658" selection-end-line="658" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/collectSports/mcollect/hg0088/fcache/hg0088.today.js">
+    <entry file="file://$PROJECT_DIR$/collectSports/items.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="50">
+          <caret line="2" column="11" selection-start-line="2" selection-start-column="11" selection-end-line="2" selection-end-column="11" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/collectSports/geckodriver.log">
       <provider selected="true" editor-type-id="text-editor" />
     </entry>
-    <entry file="file://$PROJECT_DIR$/collectSports/mcollect/hg0088/__init__.py">
+    <entry file="file://$PROJECT_DIR$/pycomm/mongo.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="198">
-          <caret line="11" column="162" selection-start-line="11" selection-start-column="153" selection-end-line="11" selection-end-column="165" />
+        <state relative-caret-position="-390">
+          <caret line="38" lean-forward="true" selection-start-line="38" selection-end-line="38" />
+          <folding>
+            <element signature="e#45#76#0" expanded="true" />
+          </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/collectSports/pipelines/sportslst.py">
+    <entry file="file://$PROJECT_DIR$/collectSports/spiders/demo.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state>
+          <caret selection-end-line="20" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/collectSports/mcollect/hg0088/LinkPool.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="275">
+          <caret line="11" selection-start-line="11" selection-end-line="11" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/collectSports/mcollect/hg0088/Resolver.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="-6">
+          <caret line="34" selection-start-line="34" selection-end-line="34" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/collectSports/biz/zqleague.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="212">
-          <caret line="28" column="47" selection-start-line="28" selection-start-column="47" selection-end-line="28" selection-end-column="47" />
+        <state relative-caret-position="-517">
           <folding>
-            <element signature="e#193#204#0" expanded="true" />
+            <element signature="e#0#10#0" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/collectSports/biz/zqmatch.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="-642">
+          <folding>
+            <element signature="e#0#10#0" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/collectSports/biz/zqchain.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="-667">
+          <folding>
+            <element signature="e#0#10#0" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/collectSports/spiders/sports.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="-1406">
+          <caret line="39" column="26" lean-forward="true" selection-start-line="39" selection-start-column="26" selection-end-line="39" selection-end-column="26" />
+          <folding>
+            <element signature="e#24#35#0" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/collectSports/utils/helper.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="150">
+          <caret line="6" column="17" lean-forward="true" selection-start-line="6" selection-start-column="17" selection-end-line="6" selection-end-column="17" />
+          <folding>
+            <element signature="e#0#11#0" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/collectSports/spiders/sportslst.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="-268">
+          <caret line="34" column="13" selection-start-line="34" selection-start-column="13" selection-end-line="34" selection-end-column="13" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://C:/ProgramData/Anaconda3/Lib/site-packages/scrapy/spiderloader.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="103">
+          <caret line="70" selection-start-line="70" selection-end-line="70" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/collectSports/main.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="158">
+          <caret line="9" column="41" lean-forward="true" selection-start-line="9" selection-start-column="41" selection-end-line="9" selection-end-column="41" />
+          <folding>
+            <element signature="e#0#10#0" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
+    <entry file="file://$PROJECT_DIR$/collectSports/mcollect/hg0088/__init__.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="133">
+          <caret line="12" lean-forward="true" selection-start-line="12" selection-end-line="12" />
+        </state>
+      </provider>
+    </entry>
     <entry file="file://$PROJECT_DIR$/collectSports/mcollect/hg0088/Storage.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="540">
-          <caret line="30" column="48" lean-forward="true" selection-start-line="30" selection-start-column="48" selection-end-line="30" selection-end-column="48" />
+        <state relative-caret-position="147">
+          <caret line="79" column="33" lean-forward="true" selection-start-line="79" selection-start-column="6" selection-end-line="79" selection-end-column="33" />
           <folding>
             <element signature="e#0#33#0" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/collectSports/models/model.py">
+    <entry file="file://$PROJECT_DIR$/collectSports/pipelines/sportslst.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="234">
-          <caret line="22" column="20" lean-forward="true" selection-start-line="22" selection-start-column="20" selection-end-line="22" selection-end-column="20" />
+        <state relative-caret-position="200">
+          <caret line="110" column="25" selection-start-line="110" selection-start-column="25" selection-end-line="110" selection-end-column="25" />
+          <folding>
+            <element signature="e#193#204#0" expanded="true" />
+          </folding>
         </state>
       </provider>
     </entry>

BIN
collectSports/__pycache__/items.cpython-36.pyc


BIN
collectSports/__pycache__/settings.cpython-36.pyc


+ 20 - 15
collectSports/biz/__init__.py

@@ -1,26 +1,31 @@
 import pycomm
-from pycomm import db,redisop,mongo
+from pycomm import db, redisop, mongo
+
 
 def getCurrentSource():
-    conf=pycomm.getCache('conf')
+    conf = pycomm.getCache('conf')
     return conf['currentSource']
+
+
 def getMongo():
-    conf=pycomm.getCache('conf')
-    mongoConf=conf['mongo']
-    return mongo.DBMongo(mongoConf['host'],mongoConf['dbname'],mongoConf['user'],mongoConf['password'],mongoConf['port'])
-#得到数据库配置
+    conf = pycomm.getCache('conf')
+    mongoConf = conf['mongo']
+    return mongo.DBMongo(mongoConf['host'], mongoConf['dbname'], mongoConf['user'], mongoConf['password'],
+                         mongoConf['port'])
+
+
+# 得到数据库配置
 def getDB():
-    conf=pycomm.getCache('conf')
-    pConf=conf['pgsql']
-    pdb = db.DB(pConf['host'], pConf['port'], pConf['user'], pConf['password'], pConf['dbname'],'pgsql')
+    conf = pycomm.getCache('conf')
+    pConf = conf['pgsql']
+    pdb = db.DB(pConf['host'], pConf['port'], pConf['user'], pConf['password'], pConf['dbname'], 'pgsql')
     return pdb
-#得到redis配置
+
+
+# 得到redis配置
 def getRedis():
-    conf=pycomm.getCache('conf')
-    rConf=conf['redis']
+    conf = pycomm.getCache('conf')
+    rConf = conf['redis']
     redisobj = redisop.RedisHelper(rConf['host'], rConf['port'], rConf['password'])
     redisConn = redisobj.getConn()
     return redisConn
-
-
-

BIN
collectSports/biz/__pycache__/__init__.cpython-36.pyc


+ 3053 - 21
collectSports/conf/hg0088.json

@@ -1,29 +1,3061 @@
 {
-    "root":[
-        {
-            "plodds":"temaball",
-            "prodds":"sw_OUH",
-            "enabled":0,
-            "items":[
+    "root" : [
+    {
+        "plodds": "tema_ball",
+        "prodds": "sw_OUH",
+        "enabled": 0,
+        "items": [
+            {
+                "lodds": "home_tema_ball_big",
+                "rodds": "ior_OUHO",
+                "ratio": "0",
+                "ratio_name": "ratio_ouho",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "home_tema_ball_small",
+                "rodds": "ior_OUHU",
+                "ratio": "0",
+                "ratio_name": "ratio_ouhu",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            }
+        ]
+    },
+    {
+            "plodds": "tema_ball",
+            "prodds": "sw_OUH",
+            "enabled": 0,
+            "items": [
                 {
-                    "lodds":"",
-                    "rodds":"",
-                    "ratio":"0",
-                    "ratio_name":"ratio",
-                    "oddsv":"",
-                    "handle":"",
-                    "uid":""
+                    "lodds": "guest_tema_ball_big",
+                    "rodds": "ior_OUCO",
+                    "ratio": "0",
+                    "ratio_name": "ratio_ouco",
+                    "oddsv": "",
+                    "handle": "",
+                    "uid": ""
                 },
                 {
-                    "lodds":"",
-                    "rodds":"ior_OUH",
-                    "ratio":"2.5",
-                    "ratio_name":"ratio_o",
-                    "oddsv":"",
-                    "handle":"",
-                    "uid":""
+                    "lodds": "guest_tema_ball_small",
+                    "rodds": "ior_OUCU",
+                    "ratio": "0",
+                    "ratio_name": "ratio_oucu",
+                    "oddsv": "",
+                    "handle": "",
+                    "uid": ""
                 }
             ]
-        }
+        },
+    {
+        "plodds": "",
+        "prodds": "sw_WM",
+        "enabled": 0,
+        "items": [
+            {
+                "lodds": "",
+                "rodds": "ior_WMH1",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_WMH2",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_WMH3",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_WMHOV",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_WMC1",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_WMC2",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_WMC3",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_WMCOV",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_WM0",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_WMN",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            }
+        ]
+    },
+    {
+        "plodds": "",
+        "prodds": "sw_DC",
+        "enabled": 0,
+        "items": [
+            {
+                "lodds": "",
+                "rodds": "ior_DCHN",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_DCCN",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_DCCN",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            }
+        ]
+    },
+    {
+        "plodds": "",
+        "prodds": "sw_W3",
+        "enabled": 0,
+        "items": [
+            {
+                "lodds": "",
+                "rodds": "ior_W3H",
+                "ratio": "+1",
+                "ratio_name": "ratio_w3h",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_W3C",
+                "ratio": "-1",
+                "ratio_name": "ratio_w3c",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_W3N",
+                "ratio": "+1",
+                "ratio_name": "ratio_w3n",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            }
+        ]
+    },
+    {
+        "plodds": "",
+        "prodds": "sw_CS",
+        "enabled": 0,
+        "items": [
+            {
+                "lodds": "",
+                "rodds": "ior_CSH",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_CSC",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            }
+        ]
+    },
+    {
+        "plodds": "",
+        "prodds": "sw_CS",
+        "enabled": 0,
+        "items": [
+            {
+                "lodds": "",
+                "rodds": "ior_WNH",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_WNC",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            }
+        ]
+    },
+    {
+        "plodds": "",
+        "prodds": "sw_WB",
+        "enabled": 0,
+        "items": [
+            {
+                "lodds": "",
+                "rodds": "ior_WBH",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_WBC",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            }
+        ]
+    },
+    {
+        "plodds": "",
+        "prodds": "sw_WE",
+        "enabled": 0,
+        "items": [
+            {
+                "lodds": "",
+                "rodds": "ior_WEH",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_WEC",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            }
+        ]
+    },
+    {
+        "plodds": "",
+        "prodds": "sw_WE",
+        "enabled": 0,
+        "items": [
+            {
+                "lodds": "",
+                "rodds": "ior_SBH",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_SBC",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            }
+        ]
+    },
+    {
+        "plodds": "",
+        "prodds": "sw_HG",
+        "enabled": 0,
+        "items": [
+            {
+                "lodds": "",
+                "rodds": "ior_HGH",
+                "ratio": "上半场",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_HGC",
+                "ratio": "下半场",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            }
+        ]
+    },
+    {
+        "plodds": "",
+        "prodds": "sw_MG",
+        "enabled": 0,
+        "items": [
+            {
+                "lodds": "",
+                "rodds": "ior_MGH",
+                "ratio": "上半场",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_MGC",
+                "ratio": "下半场",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_MGN",
+                "ratio": "和局",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            }
+        ]
+    },
+    {
+        "plodds": "",
+        "prodds": "sw_T1G",
+        "enabled": 0,
+        "items": [
+            {
+                "lodds": "",
+                "rodds": "ior_T1G1",
+                "ratio": "上半场开场-14:59分钟",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_T1G2",
+                "ratio": "15:00分钟-29:59分钟",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_T1G3",
+                "ratio": "30:00分钟-半场",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_T1G4",
+                "ratio": "下半场开场-59:59分钟",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_T1G5",
+                "ratio": "60:00分钟-74:59分钟",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_T1G6",
+                "ratio": "75:00分钟-全场完场",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_T1GN",
+                "ratio": "无进球",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            }
+        ]
+    },
+    {
+        "plodds": "",
+        "prodds": "sw_T3G",
+        "enabled": 0,
+        "items": [
+            {
+                "lodds": "",
+                "rodds": "ior_T1GN",
+                "ratio": "第26分钟或之前",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_T1GN",
+                "ratio": "第27分钟或之后",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_T1GN",
+                "ratio": "无进球",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            }
+        ]
+    },
+    {
+        "plodds": "concede",
+        "prodds": "sw_T3G",
+        "enabled": 0,
+        "items": [
+            {
+                "lodds": "concede_home",
+                "rodds": "ior_RH",
+                "ratio": "",
+                "ratio_name": "ratio",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "concede_guest",
+                "rodds": "ior_RC",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            }
+        ]
+    },
+    {
+        "plodds": "concede",
+        "prodds": "sw_HR",
+        "enabled": 0,
+        "items": [
+            {
+                "lodds": "half_concede_home",
+                "rodds": "ior_HRH",
+                "ratio": "",
+                "ratio_name": "hratio",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "half_concede_guest",
+                "rodds": "ior_HRC",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            }
+        ]
+    },
+    {
+        "plodds": "goal_size",
+        "prodds": "sw_OU",
+        "enabled": 0,
+        "items": [
+            {
+                "lodds": "goal_size_big",
+                "rodds": "ior_OUC",
+                "ratio": "",
+                "ratio_name": "ratio_u",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "goal_size_small",
+                "rodds": "ior_OUH",
+                "ratio": "",
+                "ratio_name": "ratio_o",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            }
+        ]
+    },
+    {
+        "plodds": "goal_size",
+        "prodds": "sw_HOU",
+        "enabled": 0,
+        "items": [
+            {
+                "lodds": "half_goal_size_small",
+                "rodds": "ior_HOUH",
+                "ratio": "",
+                "ratio_name": "ratio_ho",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "half_goal_size_big",
+                "rodds": "ior_HOUC",
+                "ratio": "",
+                "ratio_name": "ratio_hu",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            }
+        ]
+    },
+    {
+        "plodds": "capot",
+        "prodds": "sw_M",
+        "enabled": 0,
+        "items": [
+            {
+                "lodds": "capot_home",
+                "rodds": "ior_MH",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "capot_guest",
+                "rodds": "ior_MC",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "capot_dogfall",
+                "rodds": "ior_MN",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            }
+        ]
+    },
+    {
+        "plodds": "capot",
+        "prodds": "sw_HM",
+        "enabled": 0,
+        "items": [
+            {
+                "lodds": "half_capot_home",
+                "rodds": "ior_HMH",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "half_capot_guest",
+                "rodds": "ior_HMC",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "half_capot_dogfall",
+                "rodds": "ior_HMN",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            }
+        ]
+    },
+    {
+        "plodds": "bodan",
+        "prodds": "sw_PD",
+        "enabled": 0,
+        "items": [
+            {
+                "lodds": "bodanhome_one_zero",
+                "rodds": "ior_H1C0",
+                "ratio": "1-0",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "bodanhome_two_zero",
+                "rodds": "ior_H2C0",
+                "ratio": "2-0",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "bodanhome_two_one",
+                "rodds": "ior_H2C1",
+                "ratio": "2-1",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "bodanhome_three_zero",
+                "rodds": "ior_H3C0",
+                "ratio": "3-0",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "bodanhome_three_one",
+                "rodds": "ior_H3C1",
+                "ratio": "3-1",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "bodanhome_three_two",
+                "rodds": "ior_H3C2",
+                "ratio": "3-2",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "bodanhome_four_zero",
+                "rodds": "ior_H4C0",
+                "ratio": "4-0",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "bodanhome_four_one",
+                "rodds": "ior_H4C1",
+                "ratio": "4-1",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "bodanhome_four_two",
+                "rodds": "ior_H4C2",
+                "ratio": "4-2",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "bodanhome_four_three",
+                "rodds": "ior_H4C3",
+                "ratio": "4-3",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "bodanguest_one_zero",
+                "rodds": "ior_H0C1",
+                "ratio": "0-1",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "bodanguest_two_zero",
+                "rodds": "ior_H0C2",
+                "ratio": "0-2",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "bodanguest_two_one",
+                "rodds": "ior_H1C2",
+                "ratio": "1-2",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "bodanguest_three_zero",
+                "rodds": "ior_H0C3",
+                "ratio": "0-3",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "bodanguest_three_one",
+                "rodds": "ior_H1C3",
+                "ratio": "1-3",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "bodanguest_three_two",
+                "rodds": "ior_H2C3",
+                "ratio": "2-3",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "bodanguest_four_zero",
+                "rodds": "ior_H0C4",
+                "ratio": "0-4",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "bodanguest_four_one",
+                "rodds": "ior_H1C4",
+                "ratio": "1-4",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "bodanguest_four_two",
+                "rodds": "ior_H2C4",
+                "ratio": "2-4",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "bodanguest_four_three",
+                "rodds": "ior_H3C4",
+                "ratio": "3-4",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "bodandogfall_zero_zero",
+                "rodds": "ior_H0C0",
+                "ratio": "0-0",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "bodandogfall_one_one",
+                "rodds": "ior_H1C1",
+                "ratio": "0-0",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "bodandogfall_two_two",
+                "rodds": "ior_H2C2",
+                "ratio": "2-2",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "bodandogfall_three_three",
+                "rodds": "ior_H3C3",
+                "ratio": "3-3",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "bodandogfall_four_four",
+                "rodds": "ior_H4C4",
+                "ratio": "4-4",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "bodanother",
+                "rodds": "ior_OVH",
+                "ratio": "其他",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "bodanother",
+                "rodds": "ior_OVC",
+                "ratio": "其他",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            }
+        ]
+    },
+    {
+        "plodds": "bodan",
+        "prodds": "sw_HPD",
+        "enabled": 0,
+        "items": [
+            {
+                "lodds": "halfbodanhome_one_zero",
+                "rodds": "ior_HH1C0",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "halfbodanhome_two_zero",
+                "rodds": "ior_HH2C0",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "halfbodanhome_two_one",
+                "rodds": "ior_HH2C1",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "halfbodanhome_three_zero",
+                "rodds": "ior_HH3C0",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "halfbodanhome_three_one",
+                "rodds": "ior_HH3C1",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "halfbodanhome_three_two",
+                "rodds": "ior_HH3C2",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "halfbodanguest_one_zero",
+                "rodds": "ior_HH0C1",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "halfbodanguest_two_zero",
+                "rodds": "ior_HH0C2",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "halfbodanguest_two_one",
+                "rodds": "ior_HH1C2",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "halfbodanguest_three_zero",
+                "rodds": "ior_HH0C3",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "halfbodanguest_three_one",
+                "rodds": "ior_HH1C3",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "halfbodanguest_three_two",
+                "rodds": "ior_HH2C3",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "halfbodandogfall_zero_zero",
+                "rodds": "ior_HH0C0",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "halfbodandogfall_one_one",
+                "rodds": "ior_HH1C1",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "halfbodandogfall_two_two",
+                "rodds": "ior_HH2C2",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "halfbodandogfall_three_three",
+                "rodds": "ior_HH3C3",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "halfbodanother",
+                "rodds": "ior_HOVH",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "halfbodanother",
+                "rodds": "ior_HOVC",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            }
+        ]
+    },
+    {
+        "plodds": "capot",
+        "prodds": "sw_AM",
+        "enabled": 0,
+        "items": [
+            {
+                "ior_AMH": "",
+                "ior_AMC": "",
+                "ior_AMN": "",
+                "lodds": "",
+                "rodds": "ior_AMH",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_AMC",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_AMN",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            }
+        ]
+    },
+    {
+        "plodds": "total_goal",
+        "prodds": "sw_T",
+        "enabled": 0,
+        "items": [
+            {
+                "lodds": "total_goal_zero",
+                "rodds": "ior_T01",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "total_goal_two",
+                "rodds": "ior_T23",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "total_goal_four",
+                "rodds": "ior_T46",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "total_goal_seven",
+                "rodds": "ior_OVER",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            }
+        ]
+    },
+    {
+        "plodds": "total_goal",
+        "prodds": "sw_HT",
+        "enabled": 0,
+        "items": [
+            {
+                "lodds": "half_total_goal_zero",
+                "rodds": "ior_HT0",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "half_total_goal_one",
+                "rodds": "ior_HT1",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "half_total_goal_two",
+                "rodds": "ior_HT2",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "half_total_goal_three",
+                "rodds": "ior_HTOV",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            }
+        ]
+    },
+    {
+        "plodds": "",
+        "prodds": "sw_TS",
+        "enabled": 0,
+        "items": [
+            {
+                "lodds": "",
+                "rodds": "ior_TSY",
+                "ratio": "",
+                "ratio_name": "ratio_tsy",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_TSN",
+                "ratio": "",
+                "ratio_name": "ratio_tsn",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            }
+        ]
+    },
+    {
+        "plodds": "",
+        "prodds": "sw_HTS",
+        "enabled": 0,
+        "items": [
+            {
+                "lodds": "",
+                "rodds": "ior_HTSY",
+                "ratio": "",
+                "ratio_name": "ratio_htsy",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_HTSN",
+                "ratio": "",
+                "ratio_name": "ratio_htsn",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            }
+        ]
+    },
+    {
+        "plodds": "tema_ball",
+        "prodds": "sw_HOUH",
+        "enabled": 0,
+        "items": [
+            {
+                "lodds": "half_home_tema_ball_big",
+                "rodds": "ior_HOUHO",
+                "ratio": "",
+                "ratio_name": "ratio_houho",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "half_home_tema_ball_small",
+                "rodds": "ior_HOUHU",
+                "ratio": "",
+                "ratio_name": "ratio_houhu",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            }
+        ]
+    },
+    {
+        "plodds": "tema_ball",
+        "prodds": "sw_HOUC",
+        "enabled": 0,
+        "items": [
+            {
+                "lodds": "half_guest_tema_ball_big",
+                "rodds": "ior_HOUCO",
+                "ratio": "",
+                "ratio_name": "ratio_houco",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "half_guest_tema_ball_small",
+                "rodds": "ior_HOUCU",
+                "ratio": "",
+                "ratio_name": "ratio_houcu",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            }
+        ]
+    },
+    {
+        "plodds": "two_sides",
+        "prodds": "sw_EO",
+        "enabled": 0,
+        "items": [
+            {
+                "lodds": "two_sides_single",
+                "rodds": "ior_EOO",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "two_sides_double",
+                "rodds": "ior_EOE",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            }
+        ]
+    },
+    {
+        "plodds": "two_sides",
+        "prodds": "sw_HEO",
+        "enabled": 0,
+        "items": [
+            {
+                "lodds": "half_two_sides_single",
+                "rodds": "ior_HEOO",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "half_two_sides_double",
+                "rodds": "ior_HEOE",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            }
+        ]
+    },
+    {
+        "plodds": "first_last_ball",
+        "prodds": "ior_PGFH",
+        "enabled": 0,
+        "items": [
+            {
+                "lodds": "first_ball_home",
+                "rodds": "ior_PGFH",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "first_ball_guest",
+                "rodds": "ior_PGFC",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "not_ball",
+                "rodds": "ior_PGFN",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "last_ball_home",
+                "rodds": "ior_PGLH",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "last_ball_guest",
+                "rodds": "ior_PGLC",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            }
+        ]
+    },
+    {
+        "plodds": "half_full",
+        "prodds": "sw_F",
+        "enabled": 0,
+        "items": [
+            {
+                "lodds": "half_full_home_home",
+                "rodds": "ior_FHH",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "half_full_home_dogfall",
+                "rodds": "ior_FHN",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "half_full_home_guest",
+                "rodds": "ior_FHC",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "half_full_dogfall_home",
+                "rodds": "ior_FNH",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "half_full_dogfall_dogfall",
+                "rodds": "ior_FNN",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "half_full_dogfall_guest",
+                "rodds": "ior_FNC",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "half_full_guest_home",
+                "rodds": "ior_FCH",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "half_full_guest_dogfall",
+                "rodds": "ior_FCN",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "half_full_guest_guest",
+                "rodds": "ior_FCC",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            }
+        ]
+    },
+    {
+        "plodds": "",
+        "prodds": "sw_MOUA",
+        "enabled": 0,
+        "items": [
+            {
+                "lodds": "",
+                "rodds": "ior_MOUAHO",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_MOUAHU",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_MOUACO",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_MOUACU",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_MOUANO",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_MOUANU",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            }
+        ]
+    },
+    {
+        "plodds": "",
+        "prodds": "sw_MOUB",
+        "enabled": 0,
+        "items": [
+            {
+                "lodds": "",
+                "rodds": "ior_MOUBHO",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_MOUBHU",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_MOUBCO",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_MOUBCU",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_MOUBNO",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_MOUBNU",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            }
+        ]
+    },
+    {
+        "plodds": "",
+        "prodds": "sw_MOUC",
+        "enabled": 0,
+        "items": [
+            {
+                "lodds": "",
+                "rodds": "ior_MOUCHO",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_MOUCHU",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_MOUCCO",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_MOUCCU",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_MOUCNO",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_MOUCNU",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            }
+        ]
+    },
+    {
+        "plodds": "",
+        "prodds": "sw_MOUD",
+        "enabled": 0,
+        "items": [
+            {
+                "lodds": "",
+                "rodds": "ior_MOUDHO",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_MOUDHU",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_MOUDCO",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_MOUDCU",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_MOUDNO",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_MOUDNU",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            }
+        ]
+    },
+    {
+        "plodds": "",
+        "prodds": "sw_MTS",
+        "enabled": 0,
+        "items": [
+            {
+                "lodds": "",
+                "rodds": "ior_MTSHY",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_MTSHN",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_MTSCY",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_MTSCN",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_MTSNY",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_MTSNN",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            }
+        ]
+    },
+    {
+        "plodds": "",
+        "prodds": "sw_OUTA",
+        "enabled": 0,
+        "items": [
+            {
+                "lodds": "",
+                "rodds": "ior_OUTAOY",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_OUTAON",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_OUTAUY",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_OUTAUN",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            }
+        ]
+    },
+    {
+        "plodds": "",
+        "prodds": "sw_OUTB",
+        "enabled": 0,
+        "items": [
+            {
+                "lodds": "",
+                "rodds": "ior_OUTBOY",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_OUTBON",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_OUTBUY",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_OUTBUN",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            }
+        ]
+    },
+    {
+        "plodds": "",
+        "prodds": "sw_OUTC",
+        "enabled": 0,
+        "items": [
+            {
+                "lodds": "",
+                "rodds": "ior_OUTCOY",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_OUTCON",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_OUTCUY",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_OUTCUN",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            }
+        ]
+    },
+    {
+        "plodds": "",
+        "prodds": "sw_OUTD",
+        "enabled": 0,
+        "items": [
+            {
+                "lodds": "",
+                "rodds": "ior_OUTDOY",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_OUTDON",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_OUTDUY",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_OUTDUN",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            }
+        ]
+    },
+    {
+        "plodds": "",
+        "prodds": "sw_MPG",
+        "enabled": 0,
+        "items": [
+            {
+                "lodds": "",
+                "rodds": "ior_MPGHH",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_MPGHC",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_MPGCH",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_MPGCC",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_MPGNH",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_MPGNC",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            }
+        ]
+    },
+    {
+        "plodds": "",
+        "prodds": "sw_F2G",
+        "enabled": 0,
+        "items": [
+            {
+                "lodds": "",
+                "rodds": "ior_F2GH",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_F2GC",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            }
+        ]
+    },
+    {
+        "plodds": "",
+        "prodds": "sw_F3G",
+        "enabled": 0,
+        "items": [
+            {
+                "lodds": "",
+                "rodds": "ior_F3GH",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_F3GC",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            }
+        ]
+    },
+    {
+        "plodds": "",
+        "prodds": "sw_FG",
+        "enabled": 0,
+        "items": [
+            {
+                "lodds": "",
+                "rodds": "ior_FGS",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_FGH",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_FGN",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_FGP",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_FGF",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_FGO",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            }
+        ]
+    },
+    {
+        "plodds": "",
+        "prodds": "sw_DUA",
+        "enabled": 0,
+        "items": [
+            {
+                "lodds": "",
+                "rodds": "ior_DUAHO",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_DUAHU",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_DUACO",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_DUACU",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_DUASO",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_DUASU",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            }
+        ]
+    },
+    {
+        "plodds": "",
+        "prodds": "sw_DUB",
+        "enabled": 0,
+        "items": [
+            {
+                "lodds": "",
+                "rodds": "ior_DUBHO",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_DUBHU",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_DUBCO",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_DUBCU",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_DUBSO",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_DUBSU",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            }
+        ]
+    },
+    {
+        "plodds": "",
+        "prodds": "sw_DUC",
+        "enabled": 0,
+        "items": [
+            {
+                "lodds": "",
+                "rodds": "ior_DUCHO",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_DUCHU",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_DUCCO",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_DUCCU",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_DUCSO",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_DUCSU",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            }
+        ]
+    },
+    {
+        "plodds": "",
+        "prodds": "sw_DUD",
+        "enabled": 0,
+        "items": [
+            {
+                "lodds": "",
+                "rodds": "ior_DUDHO",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_DUDHU",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_DUDCO",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_DUDCU",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_DUDSO",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_DUDSU",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            }
+        ]
+    },
+    {
+        "plodds": "",
+        "prodds": "sw_DS",
+        "enabled": 0,
+        "items": [
+            {
+                "lodds": "",
+                "rodds": "ior_DSHY",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_DSHN",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_DSCY",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_DSCN",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_DSSY",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_DSSN",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            }
+        ]
+    },
+    {
+        "plodds": "",
+        "prodds": "sw_DG",
+        "enabled": 0,
+        "items": [
+            {
+                "lodds": "",
+                "rodds": "ior_DGHH",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_DGHC",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_DGCH",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_DGCC",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_DGSH",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_DGSC",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            }
+        ]
+    },
+    {
+        "plodds": "",
+        "prodds": "sw_OUEA",
+        "enabled": 0,
+        "items": [
+            {
+                "lodds": "",
+                "rodds": "ior_OUEAOO",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_OUEAOE",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_OUEAUO",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_OUEAUE",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            }
+        ]
+    },
+    {
+        "plodds": "",
+        "prodds": "sw_OUEB",
+        "enabled": 0,
+        "items": [
+            {
+                "lodds": "",
+                "rodds": "ior_OUEBOO",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_OUEBOE",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_OUEBUO",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_OUEBUE",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            }
+        ]
+    },
+    {
+        "plodds": "",
+        "prodds": "sw_OUEC",
+        "enabled": 0,
+        "items": [
+            {
+                "lodds": "",
+                "rodds": "ior_OUECOO",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_OUECOE",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_OUECUO",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_OUECUE",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            }
+        ]
+    },
+    {
+        "plodds": "",
+        "prodds": "sw_OUED",
+        "enabled": 0,
+        "items": [
+            {
+                "lodds": "",
+                "rodds": "ior_OUEDOO",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_OUEDOE",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_OUEDUO",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_OUEDUE",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            }
+        ]
+    },
+    {
+        "plodds": "",
+        "prodds": "sw_OUPA",
+        "enabled": 0,
+        "items": [
+            {
+                "lodds": "",
+                "rodds": "ior_OUPAOH",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_OUPAOC",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_OUPAUH",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_OUPAUC",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            }
+        ]
+    },
+    {
+        "plodds": "",
+        "prodds": "sw_OUPB",
+        "enabled": 0,
+        "items": [
+            {
+                "lodds": "",
+                "rodds": "ior_OUPBOH",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_OUPBOC",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_OUPBUH",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_OUPBUC",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            }
+        ]
+    },
+    {
+        "plodds": "",
+        "prodds": "sw_OUPC",
+        "enabled": 0,
+        "items": [
+            {
+                "lodds": "",
+                "rodds": "ior_OUPCOH",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_OUPCOC",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_OUPCUH",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_OUPCUC",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            }
+        ]
+    },
+    {
+        "plodds": "",
+        "prodds": "sw_OUPD",
+        "enabled": 0,
+        "items": [
+            {
+                "lodds": "",
+                "rodds": "ior_OUPDOH",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_OUPDOC",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_OUPDUH",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_OUPDUC",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            }
+        ]
+    },
+    {
+        "plodds": "",
+        "prodds": "sw_BH",
+        "enabled": 0,
+        "items": [
+            {
+                "lodds": "",
+                "rodds": "ior_BHH",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_BHC",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            }
+        ]
+    },
+    {
+        "plodds": "capot",
+        "prodds": "sw_BM",
+        "enabled": 0,
+        "items": [
+            {
+                "lodds": "",
+                "rodds": "ior_BMH",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_BMC",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_BMN",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            }
+        ]
+    },
+    {
+        "plodds": "capot",
+        "prodds": "sw_CM",
+        "enabled": 0,
+        "items": [
+            {
+                "lodds": "",
+                "rodds": "ior_CMH",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_CMC",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_CMN",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            }
+        ]
+    },
+    {
+        "plodds": "capot",
+        "prodds": "sw_DM",
+        "enabled": 0,
+        "items": [
+            {
+                "lodds": "",
+                "rodds": "ior_DMH",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_DMC",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_DMN",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            }
+        ]
+    },
+    {
+        "plodds": "capot",
+        "prodds": "sw_EM",
+        "enabled": 0,
+        "items": [
+            {
+                "lodds": "",
+                "rodds": "ior_EMH",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_EMC",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_EMN",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            }
+        ]
+    },
+    {
+        "plodds": "capot",
+        "prodds": "sw_FM",
+        "enabled": 0,
+        "items": [
+            {
+                "lodds": "",
+                "rodds": "ior_FMH",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_FMC",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            },
+            {
+                "lodds": "",
+                "rodds": "ior_FMN",
+                "ratio": "",
+                "ratio_name": "",
+                "oddsv": "",
+                "handle": "",
+                "uid": ""
+            }
+        ]
+    }
     ]
 }

+ 4 - 4
collectSports/conf/settings.json

@@ -6,11 +6,11 @@
         "password":""
     },
     "mongo":{
-        "host":"192.168.33.10",
+        "host":"192.168.2.200",
         "port":"27017",
-        "user":"sports",
-        "password":"123456",
-        "dbname":"sports"
+        "user":"kaiyou",
+        "password":"kaiyou",
+        "dbname":"kaiyou"
     },
     "pgsql":{
         "host":"192.168.33.10",

+ 10 - 0
collectSports/items.py

@@ -43,6 +43,7 @@ class ZqLeagueItem(scrapy.Item):
     team_num = scrapy.Field()  # 球队数量
     game_type = scrapy.Field()  # 联赛类型,FT ,NB
     uuid = scrapy.Field()
+    league_id = scrapy.Field()
     # source = scrapy.Field()
 
 
@@ -72,3 +73,12 @@ class ZqChain(scrapy.Item):
     name = scrapy.Field()  # 赔率名称
     odds = scrapy.Field()  # 赔率
     enabled = scrapy.Field()  # 启用状态
+
+
+class Odds(scrapy.Item):
+    # zq_odds = scrapy.Field()  #足球详细赔率
+    match_id = scrapy.Field()
+    uuid = scrapy.Field()
+    source = scrapy.Field()
+    updata = scrapy.Field()
+    content = scrapy.Field() #足球详细玩法赔率

+ 1 - 1
collectSports/main.py

@@ -5,7 +5,7 @@ from scrapy.cmdline import execute
 # print(os.path.dirname(os.path.abspath(__file__)))
 sys.path.append(os.path.dirname(os.path.abspath(__file__)))
 execute(["scrapy", "crawl", "sportslst"])
-# execute(["scrapy", "crawl", "zuqiu"])
+# execute(["scrapy", "crawl", "sports"])
 # execute(["scrapy", "crawl", "lanqiu"])
 # execute(["scrapy", "crawl", "guanjun"])
 # execute(["scrapy", "crawl", "wangqiu"])

+ 7 - 3
collectSports/mcollect/hg0088/LinkPool.py

@@ -1,7 +1,11 @@
 class LinkPool(object):
-    links=[]
+    links = []
+
     def __init__(self):
-        self.links.append({'url':"http://199.26.100.178/app/member/live/game_list.php?uid=yznixox4m21627573l305947&langx=zh-cn&gtype=All&gdate=All",'cb':''})
+        self.links.append({
+                              'url': "http://199.26.100.178/app/member/live/game_list.php?uid=yznixox4m21627573l305947&langx=zh-cn&gtype=All&gdate=All",
+                              'cb': ''})
         pass
+
     def getLinks(self):
-        return self.links
+        return self.links

+ 22 - 20
collectSports/mcollect/hg0088/Resolver.py

@@ -1,38 +1,40 @@
-
-import pycomm,os,lxml
+import pycomm, os, lxml
 import mcollect
 
+
 class Resolver(object):
     def __init__(self):
         pass
-    def zaopan(self,data):    
+
+    def zaopan(self, data):
         # print(mcollect.getMongo())
 
-        re=self.mixbodyv(data,'zaopan','/html/head/script[2]/text()')
+        re = self.mixbodyv(data, 'zaopan', '/html/head/script[2]/text()')
         return re
-    def zhibo(self,data):
 
-        re=self.mixbodyv(data,'zhibo','/html/head/script[1]/text()')
+    def zhibo(self, data):
+        re = self.mixbodyv(data, 'zhibo', '/html/head/script[1]/text()')
         return re
-    def today(self,data):
-        re=self.mixbodyv(data,'today','/html/head/script[2]/text()')
+
+    def today(self, data):
+        re = self.mixbodyv(data, 'today', '/html/head/script[2]/text()')
         return re
 
-    def chain(self,data):    
-        re=self.mixbodyv(data,'chain','/html/head/script[2]/text()')
+    def chain(self, data):
+        re = self.mixbodyv(data, 'chain', '/html/head/script[2]/text()')
         return re
 
-    def mixbodyv(self,data,fname,content_xpath):
-        cpath=os.path.dirname(os.path.abspath(__file__))   
-        val=pycomm.readFile(cpath+'/tmpl/'+fname+'.tmpl')
-        data=str(data.decode('utf-8'))
+    def mixbodyv(self, data, fname, content_xpath):
+        cpath = os.path.dirname(os.path.abspath(__file__))
+        val = pycomm.readFile(cpath + '/tmpl/' + fname + '.tmpl')
+        data = str(data.decode('utf-8'))
 
         doc = lxml.etree.HTML(data)
         # doc=lxml.etree.fromstring(data)  
-        ls=doc.xpath(content_xpath)
-        text=ls[0]      
-        ftext=pycomm.parseTag(val,'CONTENT',text)
-        ftext=str(ftext.encode('utf-8').decode('utf-8'))
-        pycomm.saveFile(cpath+'/fcache/hg0088.'+fname+'.js',ftext)
-        re=pycomm.exejs('node '+cpath+'/fcache/hg0088.'+fname+'.js')
+        ls = doc.xpath(content_xpath)
+        text = ls[0]
+        ftext = pycomm.parseTag(val, 'CONTENT', text)
+        ftext = str(ftext.encode('utf-8').decode('utf-8'))
+        pycomm.saveFile(cpath + '/fcache/hg0088.' + fname + '.js', ftext)
+        re = pycomm.exejs('node ' + cpath + '/fcache/hg0088.' + fname + '.js')
         return re

+ 27 - 13
collectSports/mcollect/hg0088/Storage.py

@@ -9,17 +9,18 @@ class Storage(object):
     def zaopan(self, re):
         data = CollectsportsItem()
         data['csource'] = 'zaopan'
-        data['zq_league'] = data['zq_match'] = []
+        data['zq_league'] = []
+        data['zq_match'] = []
 
         for index in re['data']:
-            i_uuid = uuid.uuid4()
-            # print(i_uuid)
             lg = ZqLeagueItem()
-            # lg['league_id'] = index['league_id']
-            lg['league_name'] = index['league_name']
+            content = []
+            content.append({'league_id': index['league_id'], 'source': 'hg0088'})
+            i_uuid = uuid.uuid4()
             lg['uuid'] = i_uuid
-            # lg['source'] = 'hg0088'
-            lg['content'] = {'league_id': index['league_id'], 'source': 'hg0088'}
+            lg['league_id'] = index['league_id']
+            lg['league_name'] = index['league_name']
+            lg['content'] = content
             mc = ZqMatch()
             mc['match_id'] = index['match_id']
             mc['half_match_id'] = index['half_match_id']
@@ -34,13 +35,26 @@ class Storage(object):
             mc['mtime'] = index['mtime']
             mc['is_corner'] = index['is_corner']
             mc['uuid'] = i_uuid
-            mc['source'] = 'hg0088'
-            data['zq_match'].append(mc)
-            mc['is_half'] = 1
-            mc['match_id'] = index['half_match_id']
-            mc['half_match_id'] = 0
-            data['zq_match'].append(mc)
+            mc_half = ZqMatch()
+            if index['half_match_id']:
+                mc_half['match_id'] = index['half_match_id']
+            # else:
+            #     mc_half['match_id'] = index['match_id']
+                mc_half['half_match_id'] = 0
+                mc_half['host_id'] = index['host_id']
+                mc_half['guest_id'] = index['guest_id']
+                mc_half['host_name'] = index['host_name']
+                mc_half['guest_name'] = index['guest_name']
+                mc_half['is_half'] = 1
+                mc_half['league_id'] = index['league_id']
+                mc_half['is_roll'] = index['is_roll']  # 是否滚球
+                mc_half['mdate'] = index['mdate']
+                mc_half['mtime'] = index['mtime']
+                mc_half['is_corner'] = index['is_corner']
+                mc_half['uuid'] = i_uuid
+                data['zq_match'].append(mc_half)
             data['zq_league'].append(lg)
+            data['zq_match'].append(mc)
         return data
 
     def zhibo(self, re):

+ 5 - 5
collectSports/mcollect/hg0088/__init__.py

@@ -1,15 +1,15 @@
 
-links=[]
-uid="kws0ore13m21627573l309444"
+links = []
+uid = "wpujoac10m21627573l385760"
 
 # links.append({'url':'http://baidu.com','cb':'zaopan'})
 
 # 直播信息
 # links.append({'url':"https://199.26.100.178/app/member/live/game_list.php?uid={uid}&langx=zh-cn&gtype=All&gdate=All",'cb':'zhibo'})
 # # 冠军杯
-# links.append({'url':"https://199.26.100.178/app/member/browse_FS/reloadgame_R.php?mid=21680472&uid={uid}&langx=zh-cn&choice=ALL&LegGame=ALL&pages=1&records=40&FStype=FT&area_id=&league_id=&rtype=fs&hot_game=",'cb':'chain'})
+links.append({'url':"https://205.201.4.177/app/member/browse_FS/reloadgame_R.php?mid=21680472&uid={uid}&langx=zh-cn&choice=ALL&LegGame=ALL&pages=1&records=40&FStype=FT&area_id=&league_id=&rtype=fs&hot_game=",'cb':'chain'})
 # 早盘
-# links.append({'url':"https://199.26.100.178/app/member/FT_future/body_var.php?uid={uid}&rtype=r&langx=zh-cn&mtype=4&page_no={page}&league_id=&hot_game=&g_date=ALL&isie11=%27N%27",'cb':'zaopan'})
+# links.append({'url':"https://205.201.4.177/app/member/FT_future/body_var.php?uid={uid}&rtype=r&langx=zh-cn&mtype=4&page_no={page}&league_id=&hot_game=&g_date=ALL&isie11=%27N%27",'cb':'zaopan'})
 
 #今日
-links.append({'url':"https://199.26.100.178/app/member/FT_browse/body_var.php?uid={uid}&rtype=r&langx=zh-cn&mtype=4&page_no=1&league_id=&hot_game=&isie11=27N%27",'cb':'today'})
+# links.append({'url':"https://199.26.100.178/app/member/FT_browse/body_var.php?uid={uid}&rtype=r&langx=zh-cn&mtype=4&page_no=1&league_id=&hot_game=&isie11=27N%27",'cb':'today'})

BIN
collectSports/mcollect/hg0088/__pycache__/Storage.cpython-36.pyc


BIN
collectSports/mcollect/hg0088/__pycache__/__init__.cpython-36.pyc


+ 64 - 64
collectSports/mcollect/hg0088/fcache/hg0088.zaopan.js

@@ -60,8 +60,8 @@ _=parent;
 _.flash_ior_set='Y';
 _.rtype='r';
 _.sel_lid='';
-top.today_gmt = '2019-06-14';
-top.now_gmt = '21:21:57';
+top.today_gmt = '2019-06-19';
+top.now_gmt = '23:30:38';
 G=_.GameFT=[];
 g=function(_){G.push(_);}
 top.SortType='';
@@ -73,69 +73,69 @@ _.clean_data_sw='N';
 _.GameHead = ['gid','datetime','league','gnum_h','gnum_c','team_h','team_c','strong','ratio','ior_RH','ior_RC','ratio_o','ratio_u','ior_OUH','ior_OUC','ior_MH','ior_MC','ior_MN','str_odd','str_even','ior_EOO','ior_EOE','hgid','hstrong','hratio','ior_HRH','ior_HRC','hratio_o','hratio_u','ior_HOUH','ior_HOUC','ior_HMH','ior_HMC','ior_HMN','more','eventid','hot','center_tv','play','gidm','isMaster','hide_N','obt_type','ptype_map','ptype','important'];
 _.retime=180;
 _.game_more=1;
-_.t_page=6;
+_.t_page=4;
 _.gamount=60;
-g(['3728206','06-15<br>05:00a<br><font color=red>Running Ball</font>','澳大利亚新南威尔斯国家超级联赛','60922','60921','芒特德瑞特城流浪者','洛克达尔','C','0 / 0.5','1.120','0.780','O3','U3','0.790','1.090','','','','','','','','3728207','C','0','1.250','0.650','O1','U1','1.310','0.570','','','','0','','','','N','2617979','N','N','0','0','','N']);
-g(['3726416','06-15<br>05:00a<br><font color=red>Running Ball</font>','日本J3联赛','60650','60649','卡马塔马尔赞岐','横滨SCC','H','0.5 / 1','0.860','1.020','O2.5 / 3','U2.5 / 3','0.810','1.050','1.59','4.40','3.80','单','双','1.95','1.94','3726417','H','0 / 0.5','0.850','1.030','O1','U1','1.070','0.790','2.24','4.60','2.20','30','87CCB9CCB9CCBABCBEBCB7CCBDBCB38EC9C6CACEC9CDCBA9B3','','p双rf单rm','N','2615961','Y','N','0','0','','N']);
-g(['3726420','06-15<br>05:00a<br><font color=red>Running Ball</font>','日本J3联赛','60656','60655','熊本深红','东京U23','H','1 / 1.5','1.120','0.760','O2.5','U2.5','0.950','0.910','1.44','5.60','4.05','单','双','1.95','1.94','3726421','H','0.5','1.080','0.800','O1','U1','1.010','0.850','2.07','5.50','2.19','30','87CCB9CCBEBCBABCBEBCB7CCBDBCB38BC9C6CACEC9CDCBA9B3','','p双rf单rm','N','2615964','Y','N','0','0','','N']);
-g(['3712698','06-15<br>06:00a<br><font color=red>Running Ball</font>','日本J1联赛','60220','60219','浦和红钻','鸟栖沙岩','H','0 / 0.5','0.860','1.050','O2','U2','1.010','0.890','2.20','3.50','3.20','单','双','1.97','1.92','3712699','H','0','0.610','1.290','O0.5 / 1','U0.5 / 1','1.040','0.860','3.00','3.95','1.94','73','88CCB9BCBCBCBABCBEBCB7CCBDBCB38EC6C8CECFC9CDCBA9B3','','p双rf单rm','N','2601791','Y','N','0','0','','N']);
-g(['3712700','06-15<br>06:00a<br><font color=red>Running Ball</font>','日本J1联赛','60222','60221','浦和红钻','鸟栖沙岩','H','0.5','1.180','0.740','O2 / 2.5','U2 / 2.5','0.750','1.150','','','','','','','','3712701','H','0 / 0.5','1.280','0.620','O1','U1','0.620','1.280','','','','0','','','','N','2601791','N','N','0','0','','N']);
-g(['3712702','06-15<br>06:00a<br><font color=red>Running Ball</font>','日本J1联赛','60224','60223','浦和红钻','鸟栖沙岩','H','0','0.570','1.350','O1.5 / 2','U1.5 / 2','1.260','0.640','','','','','','','','','','','','','','','','','','','','0','','','','N','2601791','N','N','0','0','','N']);
-g(['3712706','06-15<br>06:00a<br><font color=red>Running Ball</font>','日本J1联赛','60236','60235','东京','神户胜利船','H','0.5 / 1','0.950','0.960','O2.5','U2.5','0.970','0.930','1.73','4.65','3.85','单','双','1.94','1.95','3712707','H','0 / 0.5','0.960','0.940','O1','U1','0.940','0.960','2.38','4.75','2.13','73','87CCB8CCB9CCBABCBEBCB7CCBDBCB38ACFC7CECFC9CDCBA9B3','','p双rf单rm','N','2601805','Y','N','0','0','','N']);
-g(['3712708','06-15<br>06:00a<br><font color=red>Running Ball</font>','日本J1联赛','60238','60237','东京','神户胜利船','H','0.5','0.740','1.180','O2.5 / 3','U2.5 / 3','0.750','1.150','','','','','','','','3712709','H','0.5','1.290','0.610','O0.5 / 1','U0.5 / 1','1.310','0.590','','','','0','','','','N','2601805','N','N','0','0','','N']);
-g(['3712710','06-15<br>06:00a<br><font color=red>Running Ball</font>','日本J1联赛','60240','60239','东京','神户胜利船','H','1','1.290','0.630','O2 / 2.5','U2 / 2.5','1.190','0.710','','','','','','','','','','','','','','','','','','','','0','','','','N','2601805','N','N','0','0','','N']);
-g(['3712714','06-15<br>06:00a<br><font color=red>Running Ball</font>','日本J1联赛','60252','60251','松本山雅','仙台维加泰','H','0','0.860','1.060','O2 / 2.5','U2 / 2.5','0.890','1.010','2.58','2.80','3.30','单','双','1.94','1.95','3712715','H','0','0.880','1.020','O0.5 / 1','U0.5 / 1','1.170','0.730','3.25','3.55','1.96','73','87CCB7CCB9CCBABCBEBCB7CCBDBCB38CCEC7CECFC9CDCBA9B3','','p双rf单rm','N','2601813','Y','N','0','0','','N']);
-g(['3712716','06-15<br>06:00a<br><font color=red>Running Ball</font>','日本J1联赛','60254','60253','松本山雅','仙台维加泰','H','0 / 0.5','1.200','0.720','O2','U2','1.200','0.700','','','','','','','','3712717','H','0 / 0.5','1.380','0.520','O1','U1','0.710','1.190','','','','0','','','','N','2601813','N','N','0','0','','N']);
-g(['3712718','06-15<br>06:00a<br><font color=red>Running Ball</font>','日本J1联赛','60256','60255','松本山雅','仙台维加泰','C','0 / 0.5','0.620','1.300','O2.5','U2.5','0.670','1.230','','','','','','','','','','','','','','','','','','','','0','','','','N','2601813','N','N','0','0','','N']);
-g(['3712722','06-15<br>06:00a<br><font color=red>Running Ball</font>','日本J1联赛','60268','60267','磐田山叶','大阪飞脚','H','0','0.900','1.010','O2.5','U2.5','0.880','1.020','2.58','2.75','3.35','单','双','1.94','1.95','3712723','H','0','0.900','1.000','O1','U1','0.930','0.970','3.20','3.30','2.06','73','87CCB7CCBCBCBABCBEBCB7CCBDBCB38ECDC7CECFC9CDCBA9B3','','p双rf单rm','N','2601821','Y','N','0','0','','N']);
-g(['3712724','06-15<br>06:00a<br><font color=red>Running Ball</font>','日本J1联赛','60270','60269','磐田山叶','大阪飞脚','H','0 / 0.5','1.210','0.710','O2 / 2.5','U2 / 2.5','1.130','0.770','','','','','','','','3712725','H','0 / 0.5','1.370','0.530','O0.5 / 1','U0.5 / 1','1.300','0.600','','','','0','','','','N','2601821','N','N','0','0','','N']);
-g(['3712726','06-15<br>06:00a<br><font color=red>Running Ball</font>','日本J1联赛','60272','60271','磐田山叶','大阪飞脚','C','0 / 0.5','0.650','1.270','O2.5 / 3','U2.5 / 3','0.660','1.240','','','','','','','','','','','','','','','','','','','','0','','','','N','2601821','N','N','0','0','','N']);
-g(['3712730','06-15<br>06:00a<br><font color=red>Running Ball</font>','日本J1联赛','60284','60283','大分三神 ','名古屋鲸鱼','C','0 / 0.5','0.890','1.020','O2.5','U2.5','0.980','0.920','3.00','2.26','3.65','单','双','1.94','1.95','3712731','C','0','1.120','0.780','O1','U1','1.020','0.880','3.55','2.85','2.14','73','87CCB8CCBCBCBABCBEBCB7CCBDBCB386CDC7CECFC9CDCBA9B3','','p双rf单rm','N','2601829','Y','N','0','0','','N']);
-g(['3712732','06-15<br>06:00a<br><font color=red>Running Ball</font>','日本J1联赛','60286','60285','大分三神 ','名古屋鲸鱼','C','0','1.210','0.710','O2.5 / 3','U2.5 / 3','0.800','1.100','','','','','','','','3712733','C','0 / 0.5','0.640','1.260','O1 / 1.5','U1 / 1.5','0.620','1.280','','','','0','','','','N','2601829','N','N','0','0','','N']);
-g(['3712734','06-15<br>06:00a<br><font color=red>Running Ball</font>','日本J1联赛','60288','60287','大分三神 ','名古屋鲸鱼','C','0.5','0.700','1.220','O2 / 2.5','U2 / 2.5','1.270','0.630','','','','','','','','','','','','','','','','','','','','0','','','','N','2601829','N','N','0','0','','N']);
-g(['3712704','06-15<br>06:00a<br><font color=red>Running Ball</font>','日本J1联赛','60230','60229','浦和红钻 -角球数','鸟栖沙岩 -角球数','H','','','','O9','U9','0.920','0.900','','','','单','双','1.95','1.94','','','','','','','','','','','','','2','','','','N','2601796','Y','N','0','900',' -角球数','Y']);
-g(['3712712','06-15<br>06:00a<br><font color=red>Running Ball</font>','日本J1联赛','60246','60245','东京 -角球数','神户胜利船 -角球数','H','','','','O9.5','U9.5','0.920','0.900','','','','单','双','1.95','1.94','','','','','','','','','','','','','2','','','','N','2601810','Y','N','0','900',' -角球数','Y']);
-g(['3712720','06-15<br>06:00a<br><font color=red>Running Ball</font>','日本J1联赛','60262','60261','松本山雅 -角球数','仙台维加泰 -角球数','H','','','','O10','U10','0.760','1.060','','','','单','双','1.95','1.94','','','','','','','','','','','','','2','','','','N','2601818','Y','N','0','900',' -角球数','Y']);
-g(['3712728','06-15<br>06:00a<br><font color=red>Running Ball</font>','日本J1联赛','60278','60277','磐田山叶 -角球数','大阪飞脚 -角球数','H','','','','O9.5','U9.5','0.810','1.010','','','','单','双','1.95','1.94','','','','','','','','','','','','','2','','','','N','2601826','Y','N','0','900',' -角球数','Y']);
-g(['3712736','06-15<br>06:00a<br><font color=red>Running Ball</font>','日本J1联赛','60294','60293','大分三神  -角球数','名古屋鲸鱼 -角球数','H','','','','O9','U9','0.920','0.900','','','','单','双','1.95','1.94','','','','','','','','','','','','','2','','','','N','2601834','Y','N','0','900',' -角球数','Y']);
-g(['3720664','06-15<br>06:00a<br><font color=red>Running Ball</font>','日本J2联赛','60502','60501','山形山神','水户蜀葵','H','0 / 0.5','1.110','0.810','O2','U2','0.830','1.070','2.53','3.25','2.85','单','双','1.94','1.95','3720665','H','0','0.730','1.170','O0.5 / 1','U0.5 / 1','0.900','1.000','3.30','4.15','1.79','73','87CCB7CCBEBCBABCBEBCB7CCBDBCB387CFCFCFCEC9CDCBA9B3','','p双rf单rm','N','2610008','Y','N','0','0','','N']);
-g(['3720666','06-15<br>06:00a<br><font color=red>Running Ball</font>','日本J2联赛','60504','60503','山形山神','水户蜀葵','H','0','0.730','1.190','O1.5 / 2','U1.5 / 2','1.110','0.790','','','','','','','','3720667','H','0 / 0.5','1.360','0.540','O0.5','U0.5','1.230','0.670','','','','0','','','','N','2610008','N','N','0','0','','N']);
-g(['3720668','06-15<br>06:00a<br><font color=red>Running Ball</font>','日本J2联赛','60506','60505','山形山神','水户蜀葵','H','0.5','1.360','0.560','O1.5','U1.5','1.300','0.600','','','','','','','','','','','','','','','','','','','','0','','','','N','2610008','N','N','0','0','','N']);
-g(['3720672','06-15<br>06:00a<br><font color=red>Running Ball</font>','日本J2联赛','60514','60513','新泻天鹅','栃木SC','H','0.5 / 1','1.040','0.880','O2 / 2.5','U2 / 2.5','0.870','1.030','1.76','4.90','3.60','单','双','1.94','1.95','3720673','H','0 / 0.5','1.030','0.870','O0.5 / 1','U0.5 / 1','1.130','0.770','2.51','4.90','2.00','73','87CCB6CCBEBCBABCBEBCB7CCBDBCB38BCECFCFCEC9CDCBA9B3','','p双rf单rm','N','2610014','Y','N','0','0','','N']);
-g(['3720674','06-15<br>06:00a<br><font color=red>Running Ball</font>','日本J2联赛','60516','60515','新泻天鹅','栃木SC','H','0.5','0.770','1.150','O2','U2','1.190','0.710','','','','','','','','3720675','H','0.5','1.350','0.550','O1','U1','0.650','1.250','','','','0','','','','N','2610014','N','N','0','0','','N']);
-g(['3720676','06-15<br>06:00a<br><font color=red>Running Ball</font>','日本J2联赛','60518','60517','新泻天鹅','栃木SC','H','0 / 0.5','0.530','1.390','O2.5','U2.5','0.640','1.260','','','','','','','','','','','','','','','','','','','','0','','','','N','2610014','N','N','0','0','','N']);
-g(['3720680','06-15<br>06:00a<br><font color=red>Running Ball</font>','日本J2联赛','60526','60525','京都不死鸟','琉球','H','0.5 / 1','1.060','0.860','O2.5','U2.5','0.940','0.960','1.78','4.40','3.80','单','双','1.96','1.93','3720681','H','0 / 0.5','1.070','0.830','O1','U1','0.850','1.050','2.56','4.65','2.02','73','87CCB7CCB7CCBABCBEBCB7CCBDBCB38FCDCFCFCEC9CDCBA9B3','','p双rf单rm','N','2610020','Y','N','0','0','','N']);
-g(['3720682','06-15<br>06:00a<br><font color=red>Running Ball</font>','日本J2联赛','60528','60527','京都不死鸟','琉球','H','0.5','0.780','1.140','O2 / 2.5','U2 / 2.5','1.190','0.710','','','','','','','','3720683','H','0.5','1.370','0.530','O0.5 / 1','U0.5 / 1','1.290','0.610','','','','0','','','','N','2610020','N','N','0','0','','N']);
-g(['3720684','06-15<br>06:00a<br><font color=red>Running Ball</font>','日本J2联赛','60530','60529','京都不死鸟','琉球','H','1','1.360','0.560','O2.5 / 3','U2.5 / 3','0.690','1.210','','','','','','','','','','','','','','','','','','','','0','','','','N','2610020','N','N','0','0','','N']);
-g(['3720688','06-15<br>06:00a<br><font color=red>Running Ball</font>','日本J2联赛','60538','60537','冈山绿雉','山口雷法','H','0.5','1.030','0.890','O2.5','U2.5','0.880','1.020','2.02','3.65','3.55','单','双','1.94','1.95','3720689','H','0 / 0.5','1.160','0.740','O1','U1','0.890','1.010','2.69','4.05','2.07','73','87CCB6CCBCBCBABCBEBCB7CCBDBCB38FCBCFCFCEC9CDCBA9B3','','p双rf单rm','N','2610040','Y','N','0','0','','N']);
-g(['3720690','06-15<br>06:00a<br><font color=red>Running Ball</font>','日本J2联赛','60540','60539','冈山绿雉','山口雷法','H','0 / 0.5','0.740','1.180','O2 / 2.5','U2 / 2.5','1.130','0.770','','','','','','','','3720691','H','0','0.590','1.310','O0.5 / 1','U0.5 / 1','1.270','0.630','','','','0','','','','N','2610040','N','N','0','0','','N']);
-g(['3720692','06-15<br>06:00a<br><font color=red>Running Ball</font>','日本J2联赛','60542','60541','冈山绿雉','山口雷法','H','0.5 / 1','1.300','0.620','O2.5 / 3','U2.5 / 3','0.650','1.250','','','','','','','','','','','','','','','','','','','','0','','','','N','2610040','N','N','0','0','','N']);
-g(['3720670','06-15<br>06:00a<br><font color=red>Running Ball</font>','日本J2联赛','60510','60509','山形山神 -角球数','水户蜀葵 -角球数','H','','','','O9','U9','0.780','1.040','','','','单','双','1.95','1.94','','','','','','','','','','','','','2','','','','N','2610012','Y','N','0','900',' -角球数','Y']);
-g(['3720678','06-15<br>06:00a<br><font color=red>Running Ball</font>','日本J2联赛','60522','60521','新泻天鹅 -角球数','栃木SC -角球数','H','','','','O9.5','U9.5','0.760','1.060','','','','单','双','1.95','1.94','','','','','','','','','','','','','2','','','','N','2610018','Y','N','0','900',' -角球数','Y']);
-g(['3720686','06-15<br>06:00a<br><font color=red>Running Ball</font>','日本J2联赛','60534','60533','京都不死鸟 -角球数','琉球 -角球数','H','','','','O8.5','U8.5','0.960','0.860','','','','单','双','1.95','1.94','','','','','','','','','','','','','2','','','','N','2610024','Y','N','0','900',' -角球数','Y']);
-g(['3720694','06-15<br>06:00a<br><font color=red>Running Ball</font>','日本J2联赛','60546','60545','冈山绿雉 -角球数','山口雷法 -角球数','H','','','','O9.5','U9.5','0.780','1.040','','','','单','双','1.95','1.94','','','','','','','','','','','','','2','','','','N','2610044','Y','N','0','900',' -角球数','Y']);
-g(['3714002','06-15<br>06:00a<br><font color=red>Running Ball</font>','韩国K甲组联赛','60302','60301','蔚山现代','浦项制铁','H','0.5 / 1','0.910','1.000','O2.5','U2.5','1.020','0.870','1.67','5.30','3.90','单','双','1.96','1.93','3714003','H','0 / 0.5','0.920','0.980','O1','U1','1.020','0.870','2.35','5.20','2.15','71','87CCB9CCB7CCBABCBEBCB7CCBDBCB38BCCCECCCFC9CDCBA9B3','','p双rf单rm','N','2603134','Y','N','0','0','','N']);
-g(['3714004','06-15<br>06:00a<br><font color=red>Running Ball</font>','韩国K甲组联赛','60304','60303','蔚山现代','浦项制铁','H','0.5','0.680','1.240','O2.5 / 3','U2.5 / 3','0.790','1.100','','','','','','','','3714005','H','0.5','1.270','0.630','O1 / 1.5','U1 / 1.5','0.660','1.230','','','','0','','','','N','2603134','N','N','0','0','','N']);
-g(['3714006','06-15<br>06:00a<br><font color=red>Running Ball</font>','韩国K甲组联赛','60306','60305','蔚山现代','浦项制铁','H','1','1.240','0.680','O2 / 2.5','U2 / 2.5','1.230','0.660','','','','','','','','','','','','','','','','','','','','0','','','','N','2603134','N','N','0','0','','N']);
-g(['3714010','06-15<br>06:00a<br><font color=red>Running Ball</font>','韩国K甲组联赛','60310','60309','仁川联队','全北现代','C','1 / 1.5','0.900','1.010','O2.5 / 3','U2.5 / 3','1.020','0.870','7.70','1.44','4.60','单','双','1.95','1.94','3714011','C','0.5','0.880','1.020','O1 / 1.5','U1 / 1.5','0.780','1.110','6.40','2.01','2.34','71','89CCB9CCB7CCBABCBEBCB7CCBEBCB387CCCECCCFC9CDCBA9B3','','p双rf单rm','N','2603138','Y','N','0','0','','N']);
-g(['3714012','06-15<br>06:00a<br><font color=red>Running Ball</font>','韩国K甲组联赛','60312','60311','仁川联队','全北现代','C','1.5','0.730','1.190','O3','U3','0.780','1.110','','','','','','','','3714013','C','0 / 0.5','1.270','0.630','O1','U1','1.230','0.660','','','','0','','','','N','2603138','N','N','0','0','','N']);
-g(['3714014','06-15<br>06:00a<br><font color=red>Running Ball</font>','韩国K甲组联赛','60314','60313','仁川联队','全北现代','C','1','1.230','0.690','O3 / 3.5','U3 / 3.5','0.670','1.220','','','','','','','','','','','','','','','','','','','','0','','','','N','2603138','N','N','0','0','','N']);
-g(['3714018','06-15<br>06:00a<br><font color=red>Running Ball</font>','韩国K甲组联赛','60318','60317','城南足球俱乐部','庆南','H','0 / 0.5','1.080','0.840','O2 / 2.5','U2 / 2.5','1.000','0.890','2.40','3.10','3.30','单','双','1.97','1.92','3714019','H','0','0.770','1.130','O1','U1','0.790','1.100','3.20','3.90','1.95','71','89CCB9CCB9CCBABCBEBCB7CCBEBCB38DCBCECCCFC9CDCBA9B3','','p双rf单rm','N','2603142','Y','N','0','0','','N']);
-g(['3714020','06-15<br>06:00a<br><font color=red>Running Ball</font>','韩国K甲组联赛','60320','60319','城南足球俱乐部','庆南','H','0','0.760','1.160','O2.5','U2.5','0.750','1.140','','','','','','','','3714021','H','0 / 0.5','1.320','0.580','O0.5 / 1','U0.5 / 1','1.190','0.700','','','','0','','','','N','2603142','N','N','0','0','','N']);
-g(['3714022','06-15<br>06:00a<br><font color=red>Running Ball</font>','韩国K甲组联赛','60322','60321','城南足球俱乐部','庆南','H','0.5','1.300','0.620','O2','U2','1.260','0.630','','','','','','','','','','','','','','','','','','','','0','','','','N','2603142','N','N','0','0','','N']);
-g(['3714008','06-15<br>06:00a<br><font color=red>Running Ball</font>','韩国K甲组联赛','60308','60307','蔚山现代 -角球数','浦项制铁 -角球数','H','','','','O9','U9','0.850','0.970','','','','单','双','1.95','1.94','','','','','','','','','','','','','2','','','','N','2603137','Y','N','0','900',' -角球数','Y']);
-g(['3714016','06-15<br>06:00a<br><font color=red>Running Ball</font>','韩国K甲组联赛','60316','60315','仁川联队 -角球数','全北现代 -角球数','H','','','','O9','U9','0.920','0.900','','','','单','双','1.95','1.94','','','','','','','','','','','','','2','','','','N','2603141','Y','N','0','900',' -角球数','Y']);
-g(['3714024','06-15<br>06:00a<br><font color=red>Running Ball</font>','韩国K甲组联赛','60324','60323','城南足球俱乐部 -角球数','庆南 -角球数','H','','','','O9','U9','0.760','1.060','','','','单','双','1.95','1.94','','','','','','','','','','','','','2','','','','N','2603145','Y','N','0','900',' -角球数','Y']);
-g(['3727668','06-15<br>06:00a<br><font color=red>Running Ball</font>','韩国K乙组联赛','60874','60873','大田市民','安山小绿人','C','0 / 0.5','0.720','1.180','O2 / 2.5','U2 / 2.5','0.780','1.100','2.66','2.46','3.15','单','双','1.97','1.92','3727669','C','0','1.040','0.860','O0.5 / 1','U0.5 / 1','1.110','0.770','3.40','3.20','1.96','32','','','','N','2617461','Y','N','0','0','','N']);
-g(['3727672','06-15<br>06:00a<br><font color=red>Running Ball</font>','韩国K乙组联赛','60882','60881','水原','牙山木槿花','H','0 / 0.5','1.010','0.890','O2.5','U2.5','0.780','1.100','2.20','2.88','3.35','单','双','1.96','1.93','3727673','H','0','0.710','1.190','O1','U1','0.830','1.050','2.85','3.50','2.07','33','','','','N','2617465','Y','N','0','0','','N']);
-g(['3714026','06-15<br>06:30a<br><font color=red>Running Ball</font>','韩国K甲组联赛','60326','60325','大邱','江原','H','0.5','0.990','0.920','O2.5','U2.5','0.850','1.040','1.98','4.15','3.40','单','双','1.97','1.92','3714027','H','0 / 0.5','1.090','0.810','O1','U1','0.899','0.991','2.61','4.85','2.03','71','89BCB9BCBABCBABCBEBCB7CCB6CCB389CBCECCCFC9CDCBA9B3','','p双rf单rm','N','2603146','Y','N','0','0','','N']);
-g(['3714028','06-15<br>06:30a<br><font color=red>Running Ball</font>','韩国K甲组联赛','60328','60327','大邱','江原','H','0.5 / 1','1.230','0.690','O2 / 2.5','U2 / 2.5','1.131','0.759','','','','','','','','3714029','H','0.5','1.390','0.510','O0.5 / 1','U0.5 / 1','1.290','0.600','','','','0','','','','N','2603146','N','N','0','0','','N']);
-g(['3714030','06-15<br>06:30a<br><font color=red>Running Ball</font>','韩国K甲组联赛','60330','60329','大邱','江原','H','0 / 0.5','0.700','1.220','O2.5 / 3','U2.5 / 3','0.660','1.230','','','','','','','','','','','','','','','','','','','','0','','','','N','2603146','N','N','0','0','','N']);
-g(['3714032','06-15<br>06:30a<br><font color=red>Running Ball</font>','韩国K甲组联赛','60332','60331','大邱 -角球数','江原 -角球数','H','','','','O9','U9','0.850','0.970','','','','单','双','1.95','1.94','','','','','','','','','','','','','2','','','','N','2603149','Y','N','0','900',' -角球数','Y']);
-g(['3730482','06-15<br>07:30a<br><font color=red>Running Ball</font>','国际友谊赛','62974','62973','印尼','万那杜','H','1.5','0.660','1.180','O3','U3','0.950','0.870','1.18','11.00','5.40','单','双','1.95','1.94','3730483','H','0.5 / 1','0.970','0.870','O1 / 1.5','U1 / 1.5','0.870','0.950','1.69','7.30','2.55','11','','','','N','2620147','Y','N','0','0','','N']);
-g(['3732366','06-15<br>07:30a<br><font color=red>Running Ball</font>','土伦国际锦标赛(在法国)','63772','63771','墨西哥U22','爱尔兰U21','H','0 / 0.5','0.860','1.060','O2 / 2.5','U2 / 2.5','0.820','1.070','2.23','3.30','2.85','单','双','1.98','1.91','3732367','H','0 / 0.5','1.200','0.700','O0.5 / 1','U0.5 / 1','1.090','0.800','2.78','4.00','1.96','68','87CCBDBCB7CCBABCBEBCB7CCBDBCB38BCAC7CECDC9CDCBA9B3','','p双rf单rm','N','2621854','Y','N','0','0','','N']);
-g(['3732368','06-15<br>07:30a<br><font color=red>Running Ball</font>','土伦国际锦标赛(在法国)','63774','63773','墨西哥U22','爱尔兰U21','H','','','','O2','U2','1.090','0.800','','','','','','','','3732369','H','0','0.600','1.300','O1','U1','0.650','1.240','','','','0','','','','N','2621854','N','N','0','0','','N']);
-_.gameCount='FT|RB|5,FT|FT|9,FT|FU|226,FT|P3|180,FT|HOT_RB|3,FT|HOT_FT|0,FT|HOT_FU|24,FT|HOT_P3|14,FT|SP_RB|0,FT|SP_FT|0,FT|SP_FU|0,FT|SP_P3|0,BK|RB|3,BK|FT|2,BK|FU|6,BK|P3|8,BK|HOT_RB|0,BK|HOT_FT|0,BK|HOT_FU|0,BK|HOT_P3|0,BK|SP_RB|0,BK|SP_FT|0,BK|SP_FU|0,BK|SP_P3|0,BS|RB|10,BS|FT|0,BS|FU|11,BS|P3|11,BS|HOT_RB|0,BS|HOT_FT|0,BS|HOT_FU|0,BS|HOT_P3|0,BS|SP_RB|0,BS|SP_FT|0,BS|SP_FU|0,BS|SP_P3|0,TN|RB|0,TN|FT|0,TN|FU|35,TN|P3|35,TN|HOT_RB|0,TN|HOT_FT|0,TN|HOT_FU|0,TN|HOT_P3|0,TN|SP_RB|0,TN|SP_FT|0,TN|SP_FU|0,TN|SP_P3|0,VB|RB|0,VB|FT|0,VB|FU|15,VB|P3|15,VB|HOT_RB|0,VB|HOT_FT|0,VB|HOT_FU|0,VB|HOT_P3|0,VB|SP_RB|0,VB|SP_FT|0,VB|SP_FU|0,VB|SP_P3|0,BM|RB|0,BM|FT|0,BM|FU|0,BM|P3|0,BM|HOT_RB|0,BM|HOT_FT|0,BM|HOT_FU|0,BM|HOT_P3|0,BM|SP_RB|0,BM|SP_FT|0,BM|SP_FU|0,BM|SP_P3|0,TT|RB|0,TT|FT|0,TT|FU|0,TT|P3|0,TT|HOT_RB|0,TT|HOT_FT|0,TT|HOT_FU|0,TT|HOT_P3|0,TT|SP_RB|0,TT|SP_FT|0,TT|SP_FU|0,TT|SP_P3|0,OP|RB|0,OP|FT|3,OP|FU|45,OP|P3|37,OP|HOT_RB|0,OP|HOT_FT|0,OP|HOT_FU|0,OP|HOT_P3|0,OP|SP_RB|0,OP|SP_FT|0,OP|SP_FU|0,OP|SP_P3|0,SK|RB|0,SK|FT|0,SK|FU|14,SK|P3|14,SK|HOT_RB|0,SK|HOT_FT|0,SK|HOT_FU|0,SK|HOT_P3|0,SK|SP_RB|0,SK|SP_FT|0,SK|SP_FU|0,SK|SP_P3|0,FS|HOT_FT|31,FS|HOT_BK|0,FS|HOT_BS|0,FS|HOT_TN|0,FS|HOT_VB|0,FS|HOT_BM|0,FS|HOT_TT|0,FS|HOT_OP|0,FS|HOT_SK|0,FS|SP_FT|0,FS|SP_BK|0,FS|SP_BS|0,FS|SP_TN|0,FS|SP_VB|0,FS|SP_BM|0,FS|SP_TT|0,FS|SP_OP|0,FS|SP_SK|0,FS|FT|131,FS|BK|2,FS|BS|0,FS|TN|3,FS|VB|0,FS|BM|0,FS|TT|0,FS|OP|0,FS|SK|1';
+g(['3733268','06-20<br>07:00p<br><font color=red>Running Ball</font>','美洲金杯2019','40300','40299','尼加拉瓜 -角球数 [中]','海地 -角球数','C','1.5 / 2','0.970','0.870','O10','U10','0.910','0.910','3.65','1.43','6.90','单','双','1.95','1.94','3733269','C','0.5 / 1','0.960','0.880','O4.5','U4.5','0.990','0.830','3.25','1.66','4.75','9','','','','N','2611484','Y','N','0','900',' -角球数','Y']);
+g(['3734812','06-20<br>07:00p','美洲金杯2019特别投注','40860','40859','主场 -星期四-2场赛事','客场 -星期四-2场赛事','H','2 / 2.5','0.910','0.970','O6.5','U6.5','0.880','0.980','1.23','6.00','7.00','单','双','1.95','1.94','3734813','H','1','0.970','0.910','O2.5 / 3','U2.5 / 3','0.990','0.870','1.51','4.75','4.05','9','','','','N','2624101','Y','N','0','0',' -星期四-2场赛事','N']);
+g(['3722540','06-20<br>09:30p<br><font color=red>Running Ball</font>','美洲金杯2019','40332','40331','哥斯达黎加','百慕达','H','3','0.840','1.000','O3.5 / 4','U3.5 / 4','0.860','0.960','1.02','20.00','11.00','单','双','1.95','1.94','3722541','H','1 / 1.5','0.870','0.970','O1.5','U1.5','0.990','0.830','1.25','15.50','3.90','68','','','','N','2611500','Y','N','0','0','','N']);
+g(['3722542','06-20<br>09:30p<br><font color=red>Running Ball</font>','美洲金杯2019','40334','40333','哥斯达黎加','百慕达','H','3 / 3.5','1.110','0.730','O3.5','U3.5','1.040','0.780','','','','','','','','3722543','H','1.5','1.160','0.680','O1.5 / 2','U1.5 / 2','0.700','1.120','','','','0','','','','N','2611500','N','N','0','0','','N']);
+g(['3733276','06-20<br>09:30p<br><font color=red>Running Ball</font>','美洲金杯2019','40342','40341','哥斯达黎加 -角球数','百慕达 -角球数','H','2.5 / 3','0.740','1.100','O10.5','U10.5','0.960','0.860','1.21','5.60','8.60','单','双','1.95','1.94','3733277','H','1 / 1.5','0.790','1.050','O4.5 / 5','U4.5 / 5','0.990','0.830','1.43','4.30','5.20','9','','','','N','2611505','Y','N','0','900',' -角球数','Y']);
+g(['3735656','06-20<br>10:30p<br><font color=red>Running Ball</font>','美国公开赛冠军杯','40948','40947','洛杉矶','圣荷西地震','H','1.5','0.920','0.980','O3.5','U3.5','0.910','0.970','1.31','6.60','5.30','单','双','1.95','1.94','3735657','H','0.5','0.800','1.100','O1.5','U1.5','0.830','1.050','1.79','5.40','2.65','69','','','','N','2625017','Y','N','0','0','','N']);
+g(['3735658','06-20<br>10:30p<br><font color=red>Running Ball</font>','美国公开赛冠军杯','40950','40949','洛杉矶','圣荷西地震','H','1.5 / 2','1.140','0.760','O3 / 3.5','U3 / 3.5','1.120','0.760','','','','','','','','3735659','H','0.5 / 1','1.140','0.760','O1 / 1.5','U1 / 1.5','1.150','0.730','','','','0','','','','N','2625017','N','N','0','0','','N']);
+g(['3723970','06-21<br>12:30p<br><font color=red>Running Ball</font>','欧洲U21青年锦标赛2019(在意大利和圣马利诺)','50002','50001','英格兰U21','罗马尼亚U21','H','1','0.930','0.970','O2.5 / 3','U2.5 / 3','0.930','0.950','1.51','5.00','4.15','单','双','1.95','1.94','3723971','H','0.5','1.130','0.770','O1','U1','1.140','0.740','2.13','5.00','2.22','71','','','','N','2587626','Y','N','0','0','','N']);
+g(['3723972','06-21<br>12:30p<br><font color=red>Running Ball</font>','欧洲U21青年锦标赛2019(在意大利和圣马利诺)','50004','50003','英格兰U21','罗马尼亚U21','H','1 / 1.5','1.190','0.710','O2.5','U2.5','1.130','0.750','','','','','','','','3723973','H','0 / 0.5','0.730','1.170','O1 / 1.5','U1 / 1.5','0.710','1.170','','','','0','','','','N','2587626','N','N','0','0','','N']);
+g(['3723980','06-21<br>03:00p<br><font color=red>Running Ball</font>','欧洲U21青年锦标赛2019(在意大利和圣马利诺)','50018','50017','法国U21','克罗地亚U21','H','1 / 1.5','0.980','0.920','O2.5 / 3','U2.5 / 3','1.030','0.850','1.40','6.00','4.50','单','双','1.95','1.94','3723981','H','0.5','0.940','0.960','O1 / 1.5','U1 / 1.5','0.770','1.110','1.93','5.80','2.32','71','','','','N','2587634','Y','N','0','0','','N']);
+g(['3723982','06-21<br>03:00p<br><font color=red>Running Ball</font>','欧洲U21青年锦标赛2019(在意大利和圣马利诺)','50020','50019','法国U21','克罗地亚U21','H','1.5','1.210','0.690','O3','U3','0.750','1.130','','','','','','','','3723983','H','0.5 / 1','1.260','0.640','O1','U1','1.200','0.680','','','','0','','','','N','2587634','N','N','0','0','','N']);
+g(['3724010','06-21<br>04:00p<br><font color=red>Running Ball</font>','非洲国家杯2019(在埃及)','50206','50205','埃及','辛巴威','H','1.5 / 2','0.850','0.990','O2 / 2.5','U2 / 2.5','1.020','0.800','1.12','19.00','5.70','单','双','1.96','1.93','3724011','H','0.5 / 1','0.980','0.860','O0.5 / 1','U0.5 / 1','1.210','0.610','1.63','14.00','2.30','65','8EBCBCBCBABCBABCBEBCB7CCBEBCB38CC6CBCCCEC9CDCBA9B3','','p双rf单rm','N','2613493','Y','N','0','0','','N']);
+g(['3723990','06-21<br>07:00p<br><font color=red>Running Ball</font>','美洲国家杯2019(在巴西)','50082','50081','厄瓜多尔','智利','C','0.5','1.040','0.880','O2.5','U2.5','0.810','1.090','4.45','1.87','3.45','单','双','1.97','1.92','3723991','C','0 / 0.5','0.910','0.990','O1','U1','0.790','1.090','5.00','2.47','2.02','85','87CCBDBCBEBCBABCBEBCB8CCB6CCB38FC6CCCFCFC9CDCBA9B3','','unas','N','2600390','Y','N','0','0','','N']);
+g(['3723992','06-21<br>07:00p<br><font color=red>Running Ball</font>','美洲国家杯2019(在巴西)','50084','50083','厄瓜多尔','智利','C','0.5 / 1','0.780','1.140','O2 / 2.5','U2 / 2.5','1.060','0.840','','','','','','','','3723993','C','0.5','0.570','1.330','O0.5 / 1','U0.5 / 1','1.200','0.680','','','','0','','','','N','2600390','N','N','0','0','','N']);
+g(['3723994','06-21<br>07:00p<br><font color=red>Running Ball</font>','美洲国家杯2019(在巴西)','50086','50085','厄瓜多尔','智利','C','0 / 0.5','1.310','0.610','O2.5 / 3','U2.5 / 3','0.610','1.290','','','','','','','','','','','','','','','','','','','','0','','','','N','2600390','N','N','0','0','','N']);
+g(['3723998','06-21<br>07:00p<br><font color=red>Running Ball</font>','美洲金杯2019','50122','50121','萨尔瓦多 [中]','牙买加','C','0.5','0.850','0.990','O2','U2','0.820','1.000','4.20','1.98','2.65','单','双','2.01','1.88','3723999','C','0 / 0.5','0.760','1.080','O0.5 / 1','U0.5 / 1','0.940','0.880','5.00','2.70','1.81','66','','','','N','2611521','Y','N','0','0','','N']);
+g(['3724004','06-21<br>09:30p<br><font color=red>Running Ball</font>','美洲金杯2019','50164','50163','洪都拉斯 [中]','库拉索','H','0.5','0.810','1.030','O2 / 2.5','U2 / 2.5','0.910','0.910','1.80','3.90','3.25','单','双','1.96','1.93','3724005','H','0 / 0.5','1.020','0.820','O1','U1','0.730','1.090','2.53','4.25','2.04','66','','','','N','2611542','Y','N','0','0','','N']);
+g(['3726914','06-22<br>01:00a<br><font color=red>Running Ball</font>','日本J1联赛','60348','60347','北海道札幌冈萨多','鸟栖沙岩','H','0.5','1.020','0.880','O2 / 2.5','U2 / 2.5','0.860','1.020','2.01','3.95','3.35','单','双','1.94','1.95','3726915','H','0 / 0.5','1.200','0.700','O0.5 / 1','U0.5 / 1','1.120','0.760','2.82','4.40','1.93','70','8EBCB8CCB7CCBABCBEBCB7CCBEBCB38EC6CAC9CEC9CDCBA9B3','','p双rf单rm','N','2616591','Y','N','0','0','','N']);
+g(['3726916','06-22<br>01:00a<br><font color=red>Running Ball</font>','日本J1联赛','60350','60349','北海道札幌冈萨多','鸟栖沙岩','H','0 / 0.5','0.750','1.150','O2','U2','1.100','0.780','','','','','','','','3726917','H','0','0.570','1.330','O1','U1','0.730','1.150','','','','0','','','','N','2616591','N','N','0','0','','N']);
+g(['3726922','06-22<br>05:00a<br><font color=red>Running Ball</font>','日本J1联赛','60364','60363','横滨水手','松本山雅','H','0.5 / 1','0.850','1.050','O2.5','U2.5','1.040','0.840','1.66','5.00','4.05','单','双','1.94','1.95','3726923','H','0 / 0.5','0.910','0.990','O1','U1','1.050','0.830','2.33','4.85','2.15','70','86CCB9CCB9CCBABCBEBCB6CCB6CCB386C6CAC9CEC9CDCBA9B3','','p双rf单rm','N','2616599','Y','N','0','0','','N']);
+g(['3726924','06-22<br>05:00a<br><font color=red>Running Ball</font>','日本J1联赛','60366','60365','横滨水手','松本山雅','H','1','1.150','0.750','O2.5 / 3','U2.5 / 3','0.820','1.060','','','','','','','','3726925','H','0.5','1.260','0.640','O1 / 1.5','U1 / 1.5','0.650','1.230','','','','0','','','','N','2616599','N','N','0','0','','N']);
+g(['3726930','06-22<br>05:00a<br><font color=red>Running Ball</font>','日本J1联赛','60380','60379','神户胜利船','大分三神 ','H','0 / 0.5','1.010','0.890','O2.5','U2.5','0.990','0.890','2.29','3.00','3.55','单','双','1.93','1.96','3726931','H','0','0.790','1.110','O1','U1','1.020','0.860','2.90','3.50','2.11','70','8DBCB7CCB7CCBABCBEBCB7CCBEBCB388CFC9C9CEC9CDCBA9B3','','p双rf单rm','N','2616607','Y','N','0','0','','N']);
+g(['3726932','06-22<br>05:00a<br><font color=red>Running Ball</font>','日本J1联赛','60382','60381','神户胜利船','大分三神 ','H','0','0.690','1.210','O2.5 / 3','U2.5 / 3','0.780','1.100','','','','','','','','3726933','H','0 / 0.5','1.300','0.600','O1 / 1.5','U1 / 1.5','0.630','1.250','','','','0','','','','N','2616607','N','N','0','0','','N']);
+g(['3726972','06-22<br>05:00a<br><font color=red>Running Ball</font>','日本J2联赛','60446','60445','水户蜀葵','横滨','H','0 / 0.5','1.090','0.810','O2','U2','1.070','0.810','2.46','3.15','3.05','单','双','1.93','1.96','3726973','H','0','0.790','1.110','O0.5 / 1','U0.5 / 1','1.020','0.860','3.35','3.95','1.82','70','8CBCBABCBEBCBABCBEBCB7CCBEBCB387CBC9C9CEC9CDCBA9B3','','p双rf单rm','N','2616648','Y','N','0','0','','N']);
+g(['3726974','06-22<br>05:00a<br><font color=red>Running Ball</font>','日本J2联赛','60448','60447','水户蜀葵','横滨','H','0','0.710','1.190','O2 / 2.5','U2 / 2.5','0.790','1.090','','','','','','','','3726975','H','0 / 0.5','1.360','0.540','O1','U1','0.590','1.290','','','','0','','','','N','2616648','N','N','0','0','','N']);
+g(['3726980','06-22<br>05:00a<br><font color=red>Running Ball</font>','日本J2联赛','60458','60457','金泽萨维根','新泻天鹅','H','0 / 0.5','1.050','0.850','O2 / 2.5','U2 / 2.5','0.880','1.000','2.39','3.20','3.15','单','双','1.97','1.92','3726981','H','0','0.710','1.190','O0.5 / 1','U0.5 / 1','1.120','0.760','3.20','3.95','1.86','70','8CBCBABCB9CCBABCBEBCB7CCBEBCB38BCAC9C9CEC9CDCBA9B3','','p双rf单rm','N','2616654','Y','N','0','0','','N']);
+g(['3726982','06-22<br>05:00a<br><font color=red>Running Ball</font>','日本J2联赛','60460','60459','金泽萨维根','新泻天鹅','H','0','0.680','1.220','O2','U2','1.150','0.730','','','','','','','','3726983','H','0 / 0.5','1.300','0.600','O1','U1','0.680','1.200','','','','0','','','','N','2616654','N','N','0','0','','N']);
+g(['3726988','06-22<br>05:00a<br><font color=red>Running Ball</font>','日本J2联赛','60470','60469','德岛漩涡','福冈黄蜂','H','0.5','1.090','0.810','O2 / 2.5','U2 / 2.5','0.990','0.890','2.08','3.75','3.30','单','双','1.94','1.95','3726989','H','0 / 0.5','1.230','0.670','O0.5 / 1','U0.5 / 1','1.170','0.710','2.94','4.20','1.92','70','8CBCBABCB7CCBABCBEBCB7CCBEBCB38FC9C9C9CEC9CDCBA9B3','','p双rf单rm','N','2616660','Y','N','0','0','','N']);
+g(['3726990','06-22<br>05:00a<br><font color=red>Running Ball</font>','日本J2联赛','60472','60471','德岛漩涡','福冈黄蜂','H','0 / 0.5','0.810','1.090','O2.5','U2.5','0.760','1.120','','','','','','','','3726991','H','0','0.590','1.310','O1','U1','0.760','1.120','','','','0','','','','N','2616660','N','N','0','0','','N']);
+g(['3726996','06-22<br>05:00a<br><font color=red>Running Ball</font>','日本J2联赛','60482','60481','长崎成功丸','山形山神','C','0','1.090','0.810','O2 / 2.5','U2 / 2.5','0.930','0.950','2.93','2.52','3.20','单','双','1.95','1.94','3726997','C','0','1.030','0.870','O0.5 / 1','U0.5 / 1','1.130','0.750','3.65','3.35','1.90','70','8CBCBBBCBABCBABCBEBCB7CCBEBCB389C9C9C9CEC9CDCBA9B3','','p双rf单rm','N','2616666','Y','N','0','0','','N']);
+g(['3726998','06-22<br>05:00a<br><font color=red>Running Ball</font>','日本J2联赛','60484','60483','长崎成功丸','山形山神','C','0 / 0.5','0.740','1.160','O2.5','U2.5','0.720','1.160','','','','','','','','3726999','C','0 / 0.5','0.510','1.390','O1','U1','0.710','1.170','','','','0','','','','N','2616666','N','N','0','0','','N']);
+g(['3727004','06-22<br>05:00a<br><font color=red>Running Ball</font>','日本J2联赛','60494','60493','琉球','甲府风林','C','0.5','0.970','0.930','O2.5','U2.5','0.990','0.890','3.90','1.92','3.65','单','双','1.94','1.95','3727005','C','0 / 0.5','0.810','1.090','O1','U1','0.980','0.900','4.45','2.58','2.05','70','8ABCBEBCBCBCBABCBEBCB7CCBEBCB387C8C9C9CEC9CDCBA9B3','','p双rf单rm','N','2616678','Y','N','0','0','','N']);
+g(['3727006','06-22<br>05:00a<br><font color=red>Running Ball</font>','日本J2联赛','60496','60495','琉球','甲府风林','C','0.5 / 1','0.720','1.180','O2.5 / 3','U2.5 / 3','0.760','1.120','','','','','','','','3727007','C','0.5','0.520','1.380','O0.5 / 1','U0.5 / 1','1.320','0.560','','','','0','','','','N','2616678','N','N','0','0','','N']);
+g(['3726938','06-22<br>06:00a<br><font color=red>Running Ball</font>','日本J1联赛','60396','60395','名古屋鲸鱼','清水心跳','H','0.5','0.840','1.060','O3','U3','0.820','1.060','1.83','4.00','3.90','单','双','1.93','1.96','3726939','H','0 / 0.5','1.060','0.840','O1 / 1.5','U1 / 1.5','0.820','1.060','2.49','4.00','2.23','70','','','','N','2616615','Y','N','0','0','','N']);
+g(['3726940','06-22<br>06:00a<br><font color=red>Running Ball</font>','日本J1联赛','60398','60397','名古屋鲸鱼','清水心跳','H','0.5 / 1','1.110','0.790','O2.5 / 3','U2.5 / 3','1.090','0.790','','','','','','','','3726941','H','0.5','1.340','0.560','O1','U1','1.220','0.660','','','','0','','','','N','2616615','N','N','0','0','','N']);
+g(['3726946','06-22<br>06:00a<br><font color=red>Running Ball</font>','日本J1联赛','60412','60411','大阪飞脚','湘南比马','H','0 / 0.5','0.890','1.010','O2.5','U2.5','0.990','0.890','2.14','3.30','3.55','单','双','1.94','1.95','3726947','H','0','0.710','1.190','O1','U1','0.970','0.910','2.89','3.75','2.06','70','','','','N','2616623','Y','N','0','0','','N']);
+g(['3726948','06-22<br>06:00a<br><font color=red>Running Ball</font>','日本J1联赛','60414','60413','大阪飞脚','湘南比马','H','0','0.610','1.290','O2.5 / 3','U2.5 / 3','0.750','1.130','','','','','','','','3726949','H','0 / 0.5','1.290','0.610','O0.5 / 1','U0.5 / 1','1.320','0.560','','','','0','','','','N','2616623','N','N','0','0','','N']);
+g(['3726954','06-22<br>06:00a<br><font color=red>Running Ball</font>','日本J1联赛','60428','60427','大阪樱花','磐田山叶','H','0.5','1.060','0.840','O2','U2','1.030','0.850','2.05','3.90','3.25','单','双','1.94','1.95','3726955','H','0 / 0.5','1.200','0.700','O0.5 / 1','U0.5 / 1','1.030','0.850','2.81','4.50','1.92','70','87CCB9BCBCBCBABCBEBCB6CCB6CCB38ECCC9C9CEC9CDCBA9B3','','p双rf单rm','N','2616631','Y','N','0','0','','N']);
+g(['3726956','06-22<br>06:00a<br><font color=red>Running Ball</font>','日本J1联赛','60430','60429','大阪樱花','磐田山叶','H','0 / 0.5','0.750','1.150','O2 / 2.5','U2 / 2.5','0.740','1.140','','','','','','','','3726957','H','0','0.560','1.340','O1','U1','0.630','1.250','','','','0','','','','N','2616631','N','N','0','0','','N']);
+g(['3727012','06-22<br>06:00a<br><font color=red>Running Ball</font>','日本J2联赛','60506','60505','柏雷素尔','千叶市原','H','0.5 / 1','0.970','0.930','O2.5','U2.5','0.930','0.950','1.73','4.95','3.70','单','双','1.96','1.93','3727013','H','0 / 0.5','0.860','1.040','O1','U1','0.870','1.010','2.38','5.50','2.00','70','87CCBBBCBEBCBABCBEBCB6CCB6CCB38BC7C9C9CEC9CDCBA9B3','','p双rf单rm','N','2616684','Y','N','0','0','','N']);
+g(['3727014','06-22<br>06:00a<br><font color=red>Running Ball</font>','日本J2联赛','60508','60507','柏雷素尔','千叶市原','H','1','1.270','0.630','O2 / 2.5','U2 / 2.5','1.170','0.710','','','','','','','','3727015','H','0.5','1.290','0.610','O0.5 / 1','U0.5 / 1','1.260','0.620','','','','0','','','','N','2616684','N','N','0','0','','N']);
+g(['3727020','06-22<br>06:00a<br><font color=red>Running Ball</font>','日本J2联赛','60518','60517','东京绿茵','大宫松鼠','C','0 / 0.5','1.090','0.810','O2 / 2.5','U2 / 2.5','0.950','0.930','3.65','2.08','3.40','单','双','1.96','1.93','3727021','C','0 / 0.5','0.710','1.190','O0.5 / 1','U0.5 / 1','1.170','0.710','4.30','2.84','1.94','70','87CCBBBCB9CCBABCBEBCB6CCB6CCB38FC6C9C9CEC9CDCBA9B3','','p双rf单rm','N','2616690','Y','N','0','0','','N']);
+g(['3727022','06-22<br>06:00a<br><font color=red>Running Ball</font>','日本J2联赛','60520','60519','东京绿茵','大宫松鼠','C','0.5','0.810','1.090','O2.5','U2.5','0.710','1.170','','','','','','','','3727023','C','0','1.300','0.600','O1','U1','0.710','1.170','','','','0','','','','N','2616690','N','N','0','0','','N']);
+g(['3727028','06-22<br>06:00a<br><font color=red>Running Ball</font>','日本J2联赛','60530','60529','山口雷法','岐阜','H','0 / 0.5','0.840','1.060','O2.5 / 3','U2.5 / 3','0.950','0.930','2.09','3.50','3.50','单','双','1.95','1.94','3727029','H','0 / 0.5','1.130','0.770','O1','U1','1.170','0.710','2.60','4.00','2.15','70','8DBCB7CCBEBCBABCBEBCB7CCBEBCB389C6C9C9CEC9CDCBA9B3','','p双rf单rm','N','2616696','Y','N','0','0','','N']);
+g(['3727030','06-22<br>06:00a<br><font color=red>Running Ball</font>','日本J2联赛','60532','60531','山口雷法','岐阜','H','0.5','1.100','0.800','O2.5','U2.5','1.130','0.750','','','','','','','','3727031','H','0','0.560','1.340','O1 / 1.5','U1 / 1.5','0.680','1.200','','','','0','','','','N','2616696','N','N','0','0','','N']);
+g(['3727036','06-22<br>06:00a<br><font color=red>Running Ball</font>','日本J2联赛','60542','60541','爱媛','京都不死鸟','C','0 / 0.5','1.040','0.860','O2 / 2.5','U2 / 2.5','1.000','0.880','3.55','2.11','3.35','单','双','1.92','1.97','3727037','C','0 / 0.5','0.660','1.240','O0.5 / 1','U0.5 / 1','1.190','0.690','4.20','2.89','1.93','70','87CCBABCB9CCBABCBEBCB6CCB6CCB38DCFC8C9CEC9CDCBA9B3','','p双rf单rm','N','2616702','Y','N','0','0','','N']);
+g(['3727038','06-22<br>06:00a<br><font color=red>Running Ball</font>','日本J2联赛','60544','60543','爱媛','京都不死鸟','C','0.5','0.790','1.110','O2.5','U2.5','0.740','1.140','','','','','','','','3727039','C','0','1.270','0.630','O1','U1','0.780','1.100','','','','0','','','','N','2616702','N','N','0','0','','N']);
+g(['3727044','06-22<br>06:00a<br><font color=red>Running Ball</font>','日本J2联赛','60554','60553','鹿儿岛联','栃木SC','H','0.5','1.050','0.850','O2 / 2.5','U2 / 2.5','0.860','1.020','2.04','3.85','3.30','单','双','1.92','1.97','3727045','H','0 / 0.5','1.190','0.710','O0.5 / 1','U0.5 / 1','1.100','0.780','2.80','4.75','1.88','70','87CCBBBCBCBCBABCBEBCB6CCB6CCB387CFC8C9CEC9CDCBA9B3','','p双rf单rm','N','2616708','Y','N','0','0','','N']);
+g(['3727046','06-22<br>06:00a<br><font color=red>Running Ball</font>','日本J2联赛','60556','60555','鹿儿岛联','栃木SC','H','0 / 0.5','0.750','1.150','O2','U2','1.180','0.700','','','','','','','','3727047','H','0','0.530','1.370','O1','U1','0.680','1.200','','','','0','','','','N','2616708','N','N','0','0','','N']);
+g(['3724062','06-22<br>10:30a<br><font color=red>Running Ball</font>','非洲国家杯2019(在埃及)','60246','60245','刚果民主共和国','乌干达','H','0 / 0.5','0.800','1.040','O2.5','U2.5','0.690','1.130','2.06','3.25','3.05','单','双','1.97','1.92','3724063','H','0 / 0.5','1.150','0.690','O1','U1','0.860','0.960','2.76','3.85','2.00','45','','','','N','2613510','Y','N','0','0','','N']);
+g(['3727074','06-22<br>12:00p<br><font color=red>Running Ball</font>','挪威超级联赛','60568','60567','史卓加斯特','莫迪','C','0 / 0.5','1.030','0.870','O3','U3','0.830','1.050','3.20','2.14','3.35','单','双','1.96','1.93','3727075','C','0 / 0.5','0.730','1.170','O1 / 1.5','U1 / 1.5','0.790','1.090','3.70','2.72','2.16','70','8ABCB8CCBCBCBABCBEBCB7CCBABCB38BCDC8C9CEC9CDCBA9B3','','p双rf单rm','N','2616724','Y','N','0','0','','N']);
+g(['3727076','06-22<br>12:00p<br><font color=red>Running Ball</font>','挪威超级联赛','60570','60569','史卓加斯特','莫迪','C','0.5','0.760','1.140','O2.5 / 3','U2.5 / 3','1.050','0.830','','','','','','','','3727077','C','0','1.230','0.670','O1','U1','1.180','0.700','','','','0','','','','N','2616724','N','N','0','0','','N']);
+g(['3724066','06-22<br>01:00p<br><font color=red>Running Ball</font>','非洲国家杯2019(在埃及)','60280','60279','尼日利亚','蒲隆地共和国','H','1 / 1.5','0.990','0.850','O2 / 2.5','U2 / 2.5','0.770','1.050','1.35','7.80','4.00','单','双','1.97','1.92','3724067','H','0.5','0.910','0.930','O0.5 / 1','U0.5 / 1','1.090','0.730','1.90','8.20','2.10','45','87CCB7CCB9CCBABCBEBCB7CCBEBCB388CDCACCCEC9CDCBA9B3','','p双rf单rm','N','2613527','Y','N','0','0','','N']);
+g(['3724034','06-22<br>03:00p<br><font color=red>Running Ball</font>','美洲国家杯2019(在巴西)','60082','60081','玻利维亚','委内瑞拉','C','1','1.040','0.860','O2.5','U2.5','0.950','0.930','6.70','1.50','4.20','单','双','1.96','1.93','3724035','C','0.5','0.790','1.110','O1','U1','0.910','0.970','5.80','2.11','2.19','68','87CCB8CCBABCBABCBEBCB8CCB6CCB387C6CBCFCFC9CDCBA9B3','','unas','N','2600498','Y','N','0','0','','N']);
+g(['3724042','06-22<br>03:00p<br><font color=red>Running Ball</font>','美洲国家杯2019(在巴西)','60122','60121','秘鲁','巴西','C','1 / 1.5','1.070','0.830','O2.5 / 3','U2.5 / 3','0.830','1.050','9.00','1.36','4.80','单','双','1.95','1.94','3724043','C','0.5','1.050','0.850','O1','U1','1.090','0.790','6.90','1.84','2.45','68','87CCB8CCB8CCBABCBEBCB8CCB6CCB387CECACFCFC9CDCBA9B3','','unas','N','2600518','Y','N','0','0','','N']);
+g(['3737804','06-22<br>03:00p<br><font color=red>Running Ball</font>','女子世界杯2019(在法国)','62278','62277','挪威(女)','澳大利亚(女)','C','0 / 0.5','0.800','1.040','O2.5 / 3','U2.5 / 3','0.940','0.880','2.63','2.26','3.60','单','双','1.95','1.94','3737805','C','0','1.080','0.760','O1 / 1.5','U1 / 1.5','0.720','1.100','3.10','2.78','2.28','68','','','','N','2627051','Y','N','0','0','','N']);
+g(['3724014','06-22<br>03:00p<br><font color=red>Running Ball</font>','欧洲U21青年锦标赛2019(在意大利和圣马利诺)','60002','60001','西班牙U21','波兰U21','H','1 / 1.5','0.860','1.040','O3','U3','0.990','0.890','1.34','6.90','4.70','单','双','1.95','1.94','3724015','H','0.5','0.930','0.970','O1 / 1.5','U1 / 1.5','0.900','0.980','1.92','5.80','2.33','65','','','','N','2587642','Y','N','0','0','','N']);
+g(['3724024','06-22<br>03:00p<br><font color=red>Running Ball</font>','欧洲U21青年锦标赛2019(在意大利和圣马利诺)','60018','60017','比利时U21','意大利U21','C','1','0.990','0.910','O3','U3','1.020','0.860','4.85','1.50','4.35','单','双','1.95','1.94','3724025','C','0.5','0.810','1.090','O1 / 1.5','U1 / 1.5','0.930','0.950','4.55','2.08','2.38','65','','','','N','2587650','Y','N','0','0','','N']);
+g(['3724070','06-22<br>04:00p<br><font color=red>Running Ball</font>','非洲国家杯2019(在埃及)','60314','60313','几内亚','马达加斯加','H','0.5 / 1','0.770','1.070','O2 / 2.5','U2 / 2.5','0.890','0.930','1.54','5.50','3.45','单','双','1.97','1.92','3724071','H','0 / 0.5','0.750','1.090','O1','U1','0.760','1.060','2.26','5.70','1.99','45','','','','N','2613544','Y','N','0','0','','N']);
+g(['3724050','06-22<br>05:30p<br><font color=red>Running Ball</font>','美洲金杯2019','60162','60161','圭亚那 [中]','巴拿马','C','2','1.080','0.760','O3','U3','0.950','0.870','13.50','1.11','6.80','单','双','1.95','1.94','3724051','C','0.5 / 1','1.070','0.770','O1 / 1.5','U1 / 1.5','0.930','0.890','9.80','1.52','2.77','66','','','','N','2611563','Y','N','0','0','','N']);
+_.gameCount='FT|RB|4,FT|FT|0,FT|FU|141,FT|P3|118,FT|HOT_RB|3,FT|HOT_FT|0,FT|HOT_FU|42,FT|HOT_P3|25,FT|SP_RB|0,FT|SP_FT|0,FT|SP_FU|0,FT|SP_P3|0,BK|RB|0,BK|FT|0,BK|FU|3,BK|P3|3,BK|HOT_RB|0,BK|HOT_FT|0,BK|HOT_FU|0,BK|HOT_P3|0,BK|SP_RB|0,BK|SP_FT|0,BK|SP_FU|0,BK|SP_P3|0,BS|RB|4,BS|FT|0,BS|FU|11,BS|P3|11,BS|HOT_RB|0,BS|HOT_FT|0,BS|HOT_FU|0,BS|HOT_P3|0,BS|SP_RB|0,BS|SP_FT|0,BS|SP_FU|0,BS|SP_P3|0,TN|RB|1,TN|FT|0,TN|FU|65,TN|P3|65,TN|HOT_RB|0,TN|HOT_FT|0,TN|HOT_FU|0,TN|HOT_P3|0,TN|SP_RB|0,TN|SP_FT|0,TN|SP_FU|0,TN|SP_P3|0,VB|RB|0,VB|FT|0,VB|FU|8,VB|P3|8,VB|HOT_RB|0,VB|HOT_FT|0,VB|HOT_FU|0,VB|HOT_P3|0,VB|SP_RB|0,VB|SP_FT|0,VB|SP_FU|0,VB|SP_P3|0,BM|RB|0,BM|FT|0,BM|FU|0,BM|P3|0,BM|HOT_RB|0,BM|HOT_FT|0,BM|HOT_FU|0,BM|HOT_P3|0,BM|SP_RB|0,BM|SP_FT|0,BM|SP_FU|0,BM|SP_P3|0,TT|RB|0,TT|FT|0,TT|FU|0,TT|P3|0,TT|HOT_RB|0,TT|HOT_FT|0,TT|HOT_FU|0,TT|HOT_P3|0,TT|SP_RB|0,TT|SP_FT|0,TT|SP_FU|0,TT|SP_P3|0,OP|RB|0,OP|FT|1,OP|FU|45,OP|P3|43,OP|HOT_RB|0,OP|HOT_FT|0,OP|HOT_FU|0,OP|HOT_P3|0,OP|SP_RB|0,OP|SP_FT|0,OP|SP_FU|0,OP|SP_P3|0,SK|RB|0,SK|FT|0,SK|FU|0,SK|P3|0,SK|HOT_RB|0,SK|HOT_FT|0,SK|HOT_FU|0,SK|HOT_P3|0,SK|SP_RB|0,SK|SP_FT|0,SK|SP_FU|0,SK|SP_P3|0,FS|HOT_FT|7,FS|HOT_BK|0,FS|HOT_BS|0,FS|HOT_TN|0,FS|HOT_VB|0,FS|HOT_BM|0,FS|HOT_TT|0,FS|HOT_OP|0,FS|HOT_SK|0,FS|SP_FT|0,FS|SP_BK|0,FS|SP_BS|0,FS|SP_TN|0,FS|SP_VB|0,FS|SP_BM|0,FS|SP_TT|0,FS|SP_OP|0,FS|SP_SK|0,FS|FT|104,FS|BK|4,FS|BS|0,FS|TN|8,FS|VB|1,FS|BM|0,FS|TT|0,FS|OP|0,FS|SK|1';
 function onLoad(){
 	_.body_var_onLoad();
 }

BIN
collectSports/pipelines/__pycache__/sportslst.cpython-36.pyc


+ 104 - 25
collectSports/pipelines/sportslst.py

@@ -5,39 +5,118 @@
 # Don't forget to add your pipeline to the ITEM_PIPELINES setting
 # See: https://doc.scrapy.org/en/latest/topics/item-pipeline.html
 import json
+import datetime
+import re
+
 import pymongo
 
 import requests
 
+from collectSports.biz import getMongo
+from collectSports.utils.helper import Helper
 from pycomm.mongo import DBMongo
 
 
 class SportslstPipeline(object):
-    def open_spider(self, spider):
-        self.host = '192.168.2.200'
-        self.port = 27017
-        self.dbname = 'kaiyou'  # 数据库名
-        self.client = pymongo.MongoClient(host=self.host, port=self.port)
-        self.tdb = self.client[self.dbname]
-        self.port = self.tdb['zq_league']  # 表名
-    #     competition
-        self.port2 = self.tdb['zq_competition']  # 表名
-
+    # def open_spider(self, spider):
+    #     self.host = '192.168.2.200'
+    #     self.port = 27017
+    #     self.dbname = 'kaiyou'  # 数据库名
+    #     self.client = pymongo.MongoClient(host=self.host, port=self.port)
+    #     self.tdb = self.client[self.dbname]
+    #     self.port = self.tdb['zq_league']  # 表名
+    # #     competition
+    #     self.port2 = self.tdb['zq_competition']  # 表名
     def process_item(self, item, spider):
-        zaopan = item['csource']
-        if zaopan == 'zaopan':
+        mongo = getMongo()
+        print(mongo)
+        csource = item['csource']
+        url = 'http://admin.5gogo.com/setSports'
+        if csource == 'zaopan':
             zq_leagues = set(item['zq_league'])
+            zq_matchs = set(item['zq_match'])
+            current_time = datetime.datetime.now()
+            # 联赛
             for zq_league in zq_leagues:
-                print(zq_league)
-        #         try:
-        #             league_name = zq_league['league_name']
-        #         except:
-        #             league_name = None
-        #         if league_name:
-        #             self.port.insert(dict(zq_league))
-        #         if zq_league.get('host_name', None):
-        #             self.port2.insert(dict(zq_league))
-        # return item
-
-    def close_spider(self, spider):
-        self.client.close()
+                league_list = []
+                payload_key = ['game_code', 'title']
+                payload_value = ['zq', 'league']
+                payload = Helper.get_zip_data(payload_key, payload_value)
+                data_key = ['name_chinese', 'kind', 'match_mode', 'if_stop', 'belong', 'last_time', 'lg_id',
+                            'source', 'uuid']
+                data_value = ['name_chinese', '0', '0', '0', '0', current_time.strftime("%Y-%m-%d %H:%M:%S"),
+                              zq_league.get('league_id'), 'hg0088', str(zq_league.get('uuid'))]
+                data = Helper.get_zip_data(data_key, data_value)
+                payload['data'] = data
+                league_list.append(payload)
+                response_data = Helper.post(url, league_list)
+                print(response_data.text)
+                mongo.changeSet('zq_league').insert(dict(zq_league))
+            # 赛事
+            for zq_match in zq_matchs:
+                match_list = []
+                payload_key = ['game_code', 'title']
+                payload_value = ['zq', 'competition']
+                payload = Helper.get_zip_data(payload_key, payload_value)
+                match_date = zq_match.get('mdate')
+                match_time = re.search(r'(\d{1,2}):(\d{1,2})', zq_match.get('mtime'))
+                # 日期时间地区差异转换
+                if 0 <= int(match_time.group(1)) <= 12:
+                    if int(match_time.group(1)) == 12:
+                        r_match_time = '00:' + match_time.group(2)
+                    else:
+                        r_match_time = str(int(match_time.group(1)) + 12) + ':' + match_time.group(2)
+                else:
+                    m_time = int(match_time.group(1)) + 12 - 24
+                    if m_time < 10:
+                        r_match_time = '0' + str(m_time) + ':' + match_time.group(2)
+                    else:
+                        r_match_time = str(m_time) + ':' + match_time.group(2)
+                if int(match_time.group(1)) + 12 >= 24:
+                    match_date = (datetime.datetime.strptime(match_date, '%Y-%m-%d') + datetime.timedelta(
+                        days=1)).strftime('%Y-%m-%d')
+                old_time = match_date + ' ' + match_time.group(0) + ':00'
+                if current_time - datetime.datetime.strptime(old_time, "%Y-%m-%d %H:%M:%S") >= datetime.timedelta(
+                        hours=12):
+                    status = 1
+                else:
+                    status = 0
+                us_time = match_date + ' ' + r_match_time
+                data_key = ['home_team', 'guest_team', 'lg_id', 'status', 'match_id', 'match_date', 'match_time',
+                            'tag', 'source', 'is_rollball', 'is_today', 'is_morningplate', 'is_stringscene', 'us_time',
+                            'uuid']
+                data_value = [zq_match.get('host_name'), zq_match.get('guest_name'), zq_match.get('league_id'),
+                              status, zq_match.get('match_id'), match_date, r_match_time,
+                              '0', 'hg0088', zq_match.get('is_roll'), '0', '0', '0', us_time, str(zq_match.get('uuid'))]
+                data = Helper.get_zip_data(data_key, data_value)
+                payload['data'] = data
+                match_list.append(payload)
+                response_data = Helper.post(url, match_list)
+                print(response_data.text)
+                mongo.changeSet('zq_competition').insert(dict(zq_match))
+        # 冠军
+        elif csource == 'chain':
+            zq_chains = set(item['zq_chain'])
+            current_time = datetime.datetime.now()
+            for zq_chain in zq_chains:
+                chain_list = []
+                payload_key = ['game_code', 'title']
+                payload_value = ['zq', 'odds']
+                payload = Helper.get_zip_data(payload_key, payload_value)
+                data_key = ['match_id', 'lg_id', 'odds_code', 'status', 'sort', 'p_code', 'odds',
+                            'condition', 'odds_only', 'sole', 'source', 'type', 'team']
+                data_value = [zq_chain.get('league_id'), zq_chain.get('league_id'), zq_chain.get('league_subname'),
+                              zq_chain.get('enabled'), '0', zq_chain.get('game_type'), zq_chain.get('odds'),
+                              '0', '0', '0', 'c22123', '0', zq_chain.get('name')
+                              ]
+                data = Helper.get_zip_data(data_key, data_value)
+                payload['data'] = data
+                chain_list.append(payload)
+                response_data = Helper.post(url, chain_list)
+                print(response_data.text)
+
+                mongo.changeSet('zq_chain').insert(dict(zq_chain))
+        return item
+
+    # def close_spider(self, spider):
+    #     self.client.close()

+ 2 - 0
collectSports/settings.py

@@ -88,3 +88,5 @@ ROBOTSTXT_OBEY = False
 #HTTPCACHE_DIR = 'httpcache'
 #HTTPCACHE_IGNORE_HTTP_CODES = []
 #HTTPCACHE_STORAGE = 'scrapy.extensions.httpcache.FilesystemCacheStorage'
+
+

BIN
collectSports/spiders/__pycache__/demo.cpython-36.pyc


BIN
collectSports/spiders/__pycache__/sports.cpython-36.pyc


BIN
collectSports/spiders/__pycache__/sportslst.cpython-36.pyc


+ 3 - 3
collectSports/spiders/demo.py

@@ -2,19 +2,19 @@
 import scrapy
 from models.zqLeague import *
 
+
 class DemoSpider(scrapy.Spider):
     name = 'demo'
     allowed_domains = ['baidu.com']
     start_urls = ['http://baidu.com/']
 
     def start_requests(self):
-        so=zqLeague()
+        so = zqLeague()
         # so.select(league_id=3)
         # so.league_name='china no 1'
-        print(so.update({'league_id':1,'league_name':'ttt'},'league_id=3'))
+        print(so.update({'league_id': 1, 'league_name': 'ttt'}, 'league_id=3'))
         request = scrapy.FormRequest('https://baidu.com', callback=self.parse)
         yield request
-        
 
     def parse(self, response):
         pass

+ 85 - 23
collectSports/spiders/sports.py

@@ -1,42 +1,104 @@
 # -*- coding: utf-8 -*-
+import copy
+import datetime
+import time
+
 import scrapy
 import lxml.etree
 import pycomm
+import json
+
+from collectSports.biz import getMongo
+from collectSports.items import Odds
+
+
+
 
 class SportsSpider(scrapy.Spider):
     name = 'sports'
     allowed_domains = ['hg0088.com']
     # start_urls = ['http://hg0088.com/']
     custom_settings = {
-        "Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
-        "Accept-Encoding":"gzip, deflate",
-        "Accept-Language":"zh-CN,zh;q=0.8",
-        "Cache-Control":"max-age=0",
-        "Connection":"keep-alive",
-        "Cookie":"OddType@21627573=H; protocolstr=http; gamePoint_21627573=2019-05-10%2A0%2A0; _ga=GA1.4.601418716.1557495256; _gid=GA1.4.1118061739.1557495256",
-        "Host":"199.26.100.178",
+        "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
+        "Accept-Encoding": "gzip, deflate",
+        "Accept-Language": "zh-CN,zh;q=0.8",
+        "Cache-Control": "max-age=0",
+        "Connection": "keep-alive",
+        # "Cookie": "OddType@21627573=H; protocolstr=http; gamePoint_21627573=2019-05-10%2A0%2A0; _ga=GA1.4.601418716.1557495256; _gid=GA1.4.1118061739.1557495256",
+        "Cookie": "OddType@21627573=H; _ga=GA1.4.773413111.1560825258; _gid=GA1.4.1960743904.1560825258; protocolstr=https; gamePoint_21627573=2019-06-18%2A2%2A",
+        "Host": "205.201.4.177",
         "USER_AGENT": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 UBrowser/6.2.4098.3 Safari/537.36",
+        # "ITEM_PIPELINES": {
+        #     "collectSports.pipelines.sports.SportsPipeline": 200,
+        # }
     }
 
-    start_url= 'http://199.26.100.178/app/member/get_game_allbets.php'
+    start_url = 'https://205.201.4.177/app/member/get_game_allbets.php'
 
     def start_requests(self):
-            url=self.start_url
-            form_data={
-                "uid":"x5cx6y9fm21627573l266800",
-                "langx":"zh-cn",
-                "gtype":"FT",
-                "showtype":"FT",
-                "gid":"3701122",
-                "ltype":"4",
-                "date":pycomm.gmdate()
+        url = self.start_url
+        mongo = getMongo()
+        zq_competitions = mongo.changeSet('zq_competition').find()
+        for zq_competition in zq_competitions:
+            match_id = str(zq_competition['match_id'])
+            current_time = datetime.datetime.now()
+            mongo.changeSet('zq_competition').update({}, {'$set': {'current_time': current_time}}, upsert=True)
+            # mongo.collection.update({}, {$set: {update_time: ""}}, {multi: 1})
+            # mongo.changeSet('zq_league').insert(dict(zq_league))
+            # mongo.changeSet({"name":"zhangsan"}, {"$set":{"age":"25"}})
+            uuid = zq_competition['uuid']
+            form_data = {
+                "uid": "iobou83m21627573l357852",
+                "langx": "zh-cn",
+                "gtype": "FT",
+                "showtype": "FT",
+                "gid": match_id,
+                "ltype": "4",
+                "date": pycomm.gmdate()
             }
-            request = scrapy.FormRequest(url, formdata=form_data, callback=self.parse)
+            request = scrapy.FormRequest(url, formdata=form_data, callback=self.parse, dont_filter=True, meta={'match_id': match_id, 'uuid': uuid})
             yield request
 
     def parse(self, response):
-        doc = lxml.etree.fromstring(response.body)  
-        print(doc.xpath('/serverresponse/game/gid//text()'))
-        
-        print(pycomm.getCache('conf'))
-        pass
+        game_list = []
+        games = response.xpath('/serverresponse/game')
+        match_id = response.meta['match_id']
+        uuid = response.meta['uuid']
+        for game in games:
+            game_odds = {}
+            game = lxml.etree.fromstring(game.extract())
+            for i in game.getchildren():
+                game_odds[i.tag] = i.text
+            game_list.append(game_odds)
+            print(game_list)
+        with open('../collectSports/conf/hg0088.json', 'r', encoding='utf8') as hg:
+            hg0088 = json.load(hg)['root']
+            print(111)
+        odd_list = []
+        for x in hg0088:
+            try:
+                x['enabled'] = game_list[0][x['prodds']]
+            except:
+                pass
+            items = x['items']
+            new_items = []
+            for item in items:
+                try:
+                    item['oddsv'] = game_list[0][item['rodds']]
+                except:
+                    item['oddsv'] = 0
+                try:
+                    item['ratio'] = game_list[0][item['ratio_name']]
+                except:
+                    item['ratio'] = ""
+                new_items.append(item)
+            n_i = copy.deepcopy(x)
+            n_i['items'] = new_items
+            odd_list.append(n_i)
+        item = Odds()
+        item['match_id'] = match_id
+        item['uuid'] = uuid
+        item['source'] = "hg0088"
+        item['updata'] = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
+        item['content'] = odd_list
+        yield item

+ 14 - 19
collectSports/spiders/sportslst.py

@@ -48,7 +48,6 @@ class SportslstSpider(scrapy.Spider):
         return
 
     def parse(self, response):
-<<<<<<< HEAD
         cb = response.meta['cb']
         subdel = response.meta['subdel']
         mc = __import__('mcollect.' + self.curSrc + '.Resolver', fromlist=True)
@@ -65,26 +64,22 @@ class SportslstSpider(scrapy.Spider):
         ress = mcs.Storage()
         cbks = getattr(ress, cb)
         result = cbks(re)
+        cb = response.meta['cb']
+        subdel = response.meta['subdel']
+        mc = __import__('mcollect.' + self.curSrc + '.Resolver', fromlist=True)
+        res = mc.Resolver()
+        cbk = getattr(res, cb)
+        re = cbk(response.body)
+        re = json.loads(re)
 
-=======
-        cb=response.meta['cb']
-        subdel=response.meta['subdel']
-        mc=__import__('mcollect.'+self.curSrc+'.Resolver',fromlist=True)
-        res=mc.Resolver()
-        cbk=getattr(res,cb)
-        re=cbk(response.body)
-        re=json.loads(re)
-        
-        if subdel==0:
+        if subdel == 0:
             if 'total_page' in re:
-                self.subStart_request(re['total_page'],response.url,response.meta['cb'],'page_no')
-                
-        mcs=__import__('mcollect.'+self.curSrc+'.Storage',fromlist=True)
-        ress=mcs.Storage()
-        cbks=getattr(ress,cb)
-        result=cbks(re)
-      
->>>>>>> 701da4897c2e812ffc1dfb9d6c610731de87bca1
+                self.subStart_request(re['total_page'], response.url, response.meta['cb'], 'page_no')
+
+        mcs = __import__('mcollect.' + self.curSrc + '.Storage', fromlist=True)
+        ress = mcs.Storage()
+        cbks = getattr(ress, cb)
+        result = cbks(re)
         yield result
 
     def subStart_request(self, total_page, url, cb, page_name='page'):

+ 0 - 0
collectSports/utils/__init__.py


+ 19 - 0
collectSports/utils/helper.py

@@ -0,0 +1,19 @@
+import json
+
+import requests
+
+
+class Helper(object):
+    @staticmethod
+    def get(url, params):
+        return requests.get(url, data={"data": json.dumps(params)})
+
+    @staticmethod
+    def post(url, params):
+        return requests.post(url, data={"data": json.dumps(params)})
+
+    @staticmethod
+    def get_zip_data(list1, list2):
+        if list1 and list2:
+            if isinstance(list1, list) and isinstance(list2, list):
+                return dict(zip(list1, list2))

+ 9 - 4
pycomm/mongo.py

@@ -2,11 +2,14 @@
 # -*- coding:utf-8 -*-
 from pymongo import MongoClient
 import pycomm
+
 # settings = {
-#     "ip":'192.168.0.113',  # ip
-#     "port":27017,  # 端口
-#     "db_name" : "mydb",  # 数据库名字
-#     "set_name" : "test_set"  # 集合名字
+#     "ip": '192.168.2.200',  # ip
+#     "port": 27017,  # 端口
+#     "db_name": "kaiyou",  # 数据库名字
+#     "set_name": "test_set",  # 集合名字
+#     "user": '',
+#     'pwd': '',
 # }
 
 
@@ -15,11 +18,13 @@ class DBMongo(object):
     def __init__(self, host, dbname, user, pwd, port):
         try:
             uri = 'mongodb://' + user + ':' + pwd + '@' + host + ':' + port + '/' + dbname
+            print(uri)
             self.conn = MongoClient(uri)
             self.db = self.conn[dbname]
 
         except Exception as e:
             pycomm.toLog(e)
+
     # 选定数据集
     def changeSet(self,setname):
         return self.db[setname]