mirror of https://github.com/testerSunshine/12306
commit
1fa7d11187
|
@ -0,0 +1,9 @@
|
|||
**/*.html
|
||||
**/*.pyc
|
||||
**/*.yaml
|
||||
**/*.log
|
||||
**/*~
|
||||
**/.DS_Store
|
||||
**/Thumbs.db
|
||||
.idea/
|
||||
.git/
|
|
@ -2,7 +2,7 @@
|
|||
<module type="PYTHON_MODULE" version="4">
|
||||
<component name="NewModuleRootManager">
|
||||
<content url="file://$MODULE_DIR$" />
|
||||
<orderEntry type="jdk" jdkName="Python 2.7 (qt12306)" jdkType="Python SDK" />
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
<component name="TestRunnerService">
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<inspection_tool class="PyPackageRequirementsInspection" enabled="true" level="WARNING" enabled_by_default="true">
|
||||
<option name="ignoredPackages">
|
||||
<value>
|
||||
<list size="11">
|
||||
<list size="13">
|
||||
<item index="0" class="java.lang.String" itemvalue="nose" />
|
||||
<item index="1" class="java.lang.String" itemvalue="locust" />
|
||||
<item index="2" class="java.lang.String" itemvalue="selenium" />
|
||||
|
@ -16,6 +16,8 @@
|
|||
<item index="8" class="java.lang.String" itemvalue="MySQL-python" />
|
||||
<item index="9" class="java.lang.String" itemvalue="redis" />
|
||||
<item index="10" class="java.lang.String" itemvalue="redis_py_cluster" />
|
||||
<item index="11" class="java.lang.String" itemvalue="requests" />
|
||||
<item index="12" class="java.lang.String" itemvalue="APScheduler" />
|
||||
</list>
|
||||
</value>
|
||||
</option>
|
||||
|
|
|
@ -1,8 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="MarkdownExportedFiles">
|
||||
<htmlFiles />
|
||||
<imageFiles />
|
||||
<otherFiles />
|
||||
</component>
|
||||
</project>
|
|
@ -1,72 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="MarkdownProjectSettings">
|
||||
<PreviewSettings splitEditorLayout="SPLIT" splitEditorPreview="PREVIEW" useGrayscaleRendering="false" zoomFactor="1.0" maxImageWidth="0" showGitHubPageIfSynced="false" allowBrowsingInPreview="false" synchronizePreviewPosition="true" highlightPreviewType="NONE" highlightFadeOut="5" highlightOnTyping="true" synchronizeSourcePosition="true" verticallyAlignSourceAndPreviewSyncPosition="true" showSearchHighlightsInPreview="false" showSelectionInPreview="true" openRemoteLinks="true">
|
||||
<PanelProvider>
|
||||
<provider providerId="com.vladsch.idea.multimarkdown.editor.swing.html.panel" providerName="Default - Swing" />
|
||||
</PanelProvider>
|
||||
</PreviewSettings>
|
||||
<ParserSettings gitHubSyntaxChange="false">
|
||||
<PegdownExtensions>
|
||||
<option name="ABBREVIATIONS" value="false" />
|
||||
<option name="ANCHORLINKS" value="true" />
|
||||
<option name="ASIDE" value="false" />
|
||||
<option name="ATXHEADERSPACE" value="true" />
|
||||
<option name="AUTOLINKS" value="true" />
|
||||
<option name="DEFINITIONS" value="false" />
|
||||
<option name="DEFINITION_BREAK_DOUBLE_BLANK_LINE" value="false" />
|
||||
<option name="FENCED_CODE_BLOCKS" value="true" />
|
||||
<option name="FOOTNOTES" value="false" />
|
||||
<option name="HARDWRAPS" value="false" />
|
||||
<option name="HTML_DEEP_PARSER" value="false" />
|
||||
<option name="INSERTED" value="false" />
|
||||
<option name="QUOTES" value="false" />
|
||||
<option name="RELAXEDHRULES" value="true" />
|
||||
<option name="SMARTS" value="false" />
|
||||
<option name="STRIKETHROUGH" value="true" />
|
||||
<option name="SUBSCRIPT" value="false" />
|
||||
<option name="SUPERSCRIPT" value="false" />
|
||||
<option name="SUPPRESS_HTML_BLOCKS" value="false" />
|
||||
<option name="SUPPRESS_INLINE_HTML" value="false" />
|
||||
<option name="TABLES" value="true" />
|
||||
<option name="TASKLISTITEMS" value="true" />
|
||||
<option name="TOC" value="false" />
|
||||
<option name="WIKILINKS" value="true" />
|
||||
</PegdownExtensions>
|
||||
<ParserOptions>
|
||||
<option name="COMMONMARK_LISTS" value="true" />
|
||||
<option name="DUMMY" value="false" />
|
||||
<option name="EMOJI_SHORTCUTS" value="true" />
|
||||
<option name="FLEXMARK_FRONT_MATTER" value="false" />
|
||||
<option name="GFM_LOOSE_BLANK_LINE_AFTER_ITEM_PARA" value="false" />
|
||||
<option name="GFM_TABLE_RENDERING" value="true" />
|
||||
<option name="GITBOOK_URL_ENCODING" value="false" />
|
||||
<option name="GITHUB_EMOJI_URL" value="false" />
|
||||
<option name="GITHUB_LISTS" value="false" />
|
||||
<option name="GITHUB_WIKI_LINKS" value="true" />
|
||||
<option name="JEKYLL_FRONT_MATTER" value="false" />
|
||||
<option name="SIM_TOC_BLANK_LINE_SPACER" value="true" />
|
||||
</ParserOptions>
|
||||
</ParserSettings>
|
||||
<HtmlSettings headerTopEnabled="false" headerBottomEnabled="false" bodyTopEnabled="false" bodyBottomEnabled="false" embedUrlContent="false" addPageHeader="true" embedImages="false" embedHttpImages="false">
|
||||
<GeneratorProvider>
|
||||
<provider providerId="com.vladsch.idea.multimarkdown.editor.swing.html.generator" providerName="Default Swing HTML Generator" />
|
||||
</GeneratorProvider>
|
||||
<headerTop />
|
||||
<headerBottom />
|
||||
<bodyTop />
|
||||
<bodyBottom />
|
||||
</HtmlSettings>
|
||||
<CssSettings previewScheme="UI_SCHEME" cssUri="" isCssUriEnabled="false" isCssTextEnabled="false" isDynamicPageWidth="true">
|
||||
<StylesheetProvider>
|
||||
<provider providerId="com.vladsch.idea.multimarkdown.editor.swing.html.css" providerName="Default Swing Stylesheet" />
|
||||
</StylesheetProvider>
|
||||
<ScriptProviders />
|
||||
<cssText />
|
||||
</CssSettings>
|
||||
<HtmlExportSettings updateOnSave="false" parentDir="$ProjectFileDir$" targetDir="$ProjectFileDir$" cssDir="" scriptDir="" plainHtml="false" imageDir="" copyLinkedImages="false" imageUniquifyType="0" targetExt="" useTargetExt="false" noCssNoScripts="false" linkToExportedHtml="true" exportOnSettingsChange="true" regenerateOnProjectOpen="false" linkFormatType="HTTP_ABSOLUTE" />
|
||||
<LinkMapSettings>
|
||||
<textMaps />
|
||||
</LinkMapSettings>
|
||||
</component>
|
||||
</project>
|
|
@ -1,3 +0,0 @@
|
|||
<component name="MarkdownNavigator.ProfileManager">
|
||||
<settings default="" pdf-export="" />
|
||||
</component>
|
|
@ -3,5 +3,5 @@
|
|||
<component name="JavaScriptSettings">
|
||||
<option name="languageLevel" value="ES6" />
|
||||
</component>
|
||||
<component name="ProjectRootManager" version="2" project-jdk-name="Python 2.7 (qt12306)" project-jdk-type="Python SDK" />
|
||||
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.6.3 (/Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6)" project-jdk-type="Python SDK" />
|
||||
</project>
|
|
@ -1,8 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectModuleManager">
|
||||
<modules>
|
||||
<module fileurl="file://$PROJECT_DIR$/.idea/12306.iml" filepath="$PROJECT_DIR$/.idea/12306.iml" />
|
||||
</modules>
|
||||
</component>
|
||||
</project>
|
|
@ -1,6 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
||||
</component>
|
||||
</project>
|
|
@ -1,12 +1,16 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ChangeListManager">
|
||||
<list default="true" id="e3073fd1-1758-4def-8eb5-379307a272f8" name="Default" comment="增加余票不足优先提交功能">
|
||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/config/ticket_config.yaml" beforeDir="false" afterPath="$PROJECT_DIR$/config/ticket_config.yaml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/inter/Query.py" beforeDir="false" afterPath="$PROJECT_DIR$/inter/Query.py" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/inter/QueryOrderWaitTime.py" beforeDir="false" afterPath="$PROJECT_DIR$/inter/QueryOrderWaitTime.py" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/tkcode" beforeDir="false" afterPath="$PROJECT_DIR$/tkcode" afterDir="false" />
|
||||
<list default="true" id="4ff88715-dd0d-4e26-8ea7-b7b28038ca10" name="Default" comment="">
|
||||
<change beforePath="$PROJECT_DIR$/.idea/12306.iml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/.idea/inspectionProfiles/Project_Default.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/.idea/markdown-exported-files.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/.idea/markdown-navigator.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/.idea/markdown-navigator/profiles_settings.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/.idea/misc.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/.idea/modules.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/.idea/vcs.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" />
|
||||
</list>
|
||||
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
|
||||
<option name="TRACKING_ENABLED" value="true" />
|
||||
|
@ -24,8 +28,8 @@
|
|||
<file leaf-file-name="select_ticket_info.py" pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/init/select_ticket_info.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="3168">
|
||||
<caret line="243" column="47" selection-start-line="243" selection-start-column="47" selection-end-line="243" selection-end-column="47" />
|
||||
<state relative-caret-position="1184">
|
||||
<caret line="104" column="36" selection-start-line="104" selection-start-column="36" selection-end-line="104" selection-end-column="36" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
|
@ -33,80 +37,58 @@
|
|||
<file leaf-file-name="QueryOrderWaitTime.py" pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/inter/QueryOrderWaitTime.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="433">
|
||||
<caret line="89" column="32" selection-start-line="89" selection-start-column="32" selection-end-line="89" selection-end-column="32" />
|
||||
<state relative-caret-position="48">
|
||||
<caret line="34" column="122" selection-start-line="34" selection-start-column="122" selection-end-line="34" selection-end-column="122" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="GetQueueCountAsync.py" pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/inter/GetQueueCountAsync.py">
|
||||
<file leaf-file-name=".gitignore" pinned="false" current-in-tab="true">
|
||||
<entry file="file://$PROJECT_DIR$/.gitignore">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="96">
|
||||
<caret line="80" column="8" selection-start-line="80" selection-start-column="8" selection-end-line="80" selection-end-column="8" />
|
||||
<state relative-caret-position="64">
|
||||
<caret line="4" column="1" selection-start-line="4" selection-start-column="1" selection-end-line="4" selection-end-column="1" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="GetQueueCount.py" pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/inter/GetQueueCount.py">
|
||||
<file leaf-file-name="TicketEnmu.py" pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/config/TicketEnmu.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="384">
|
||||
<caret line="86" column="37" selection-start-line="86" selection-start-column="37" selection-end-line="86" selection-end-column="37" />
|
||||
<state relative-caret-position="416">
|
||||
<caret line="26" column="4" selection-start-line="26" selection-start-column="4" selection-end-line="26" selection-end-column="4" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="GetPassengerDTOs.py" pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/inter/GetPassengerDTOs.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="80">
|
||||
<caret line="63" column="35" selection-start-line="63" selection-start-column="35" selection-end-line="63" selection-end-column="35" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="GetPassCodeNewOrderAndLogin.py" pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/inter/GetPassCodeNewOrderAndLogin.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="208">
|
||||
<caret line="15" column="63" selection-start-line="15" selection-start-column="63" selection-end-line="15" selection-end-column="63" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="ConfirmSingleForQueueAsys.py" pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/inter/ConfirmSingleForQueueAsys.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="-248">
|
||||
<caret line="13" column="25" selection-start-line="13" selection-start-column="25" selection-end-line="13" selection-end-column="25" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="AutoSubmitOrderRequest.py" pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/inter/AutoSubmitOrderRequest.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="340">
|
||||
<caret line="99" selection-start-line="99" selection-end-line="99" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="ticket_config.yaml" pinned="false" current-in-tab="true">
|
||||
<file leaf-file-name="ticket_config.yaml" pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/config/ticket_config.yaml">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="448">
|
||||
<caret line="28" column="14" selection-start-line="28" selection-start-column="14" selection-end-line="28" selection-end-column="14" />
|
||||
<state relative-caret-position="192">
|
||||
<caret line="12" column="19" selection-start-line="12" selection-start-column="19" selection-end-line="12" selection-end-column="19" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="ConfirmSingleForQueue.py" pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/inter/ConfirmSingleForQueue.py">
|
||||
<file leaf-file-name="requirements.txt" pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/requirements.txt">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="-232">
|
||||
<caret line="36" column="98" selection-start-line="36" selection-start-column="61" selection-end-line="36" selection-end-column="98" />
|
||||
<state relative-caret-position="96">
|
||||
<caret line="6" column="16" selection-start-line="6" selection-start-column="16" selection-end-line="6" selection-end-column="16" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="README.md" pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/README.md">
|
||||
<provider selected="true" editor-type-id="split-provider[text-editor;MarkdownPreviewEditor]">
|
||||
<state split_layout="SPLIT">
|
||||
<first_editor relative-caret-position="848">
|
||||
<caret line="53" column="4" selection-start-line="53" selection-start-column="4" selection-end-line="56" selection-end-column="23" />
|
||||
</first_editor>
|
||||
<second_editor>
|
||||
<js_state />
|
||||
</second_editor>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
|
@ -120,86 +102,9 @@
|
|||
</list>
|
||||
</option>
|
||||
</component>
|
||||
<component name="FindInProjectRecents">
|
||||
<findStrings>
|
||||
<find>12306account</find>
|
||||
<find>ticket</find>
|
||||
<find>联系人不在列表中,请查证后添加</find>
|
||||
<find>飘飘</find>
|
||||
<find>select_refresh_interval</find>
|
||||
<find>正在尝试排队</find>
|
||||
<find>passengerDTOs</find>
|
||||
<find>提交订单失败</find>
|
||||
<find>ifshowPassCodeTime</find>
|
||||
<find>车票提交通过</find>
|
||||
<find>query</find>
|
||||
<find>出票成功</find>
|
||||
<find>查询到有余票,尝试提交订单</find>
|
||||
<find>station_seat</find>
|
||||
<find>ifShowPassCodeTime</find>
|
||||
<find>checkOrderInfo</find>
|
||||
<find>/otn/leftTicket/submitOrderRequest</find>
|
||||
<find>文贤平</find>
|
||||
<find>当前余票数小于乘车人数,放弃订票</find>
|
||||
<find>车票提交通过,正在尝试排队</find>
|
||||
<find>select_url</find>
|
||||
<find>loginInit</find>
|
||||
<find>验证码提交安全期,等待</find>
|
||||
<find>文贤平(二代身份证-43052419950223777X)存在与本次购票行程冲突的车票!!</find>
|
||||
<find>logininit</find>
|
||||
<find>confirmSingleForQueueAsys</find>
|
||||
<find>is_auto_code</find>
|
||||
<find>idateM</find>
|
||||
<find>queryMyOrderNoCompleteUrl</find>
|
||||
<find>queryMyOrderNoComplete</find>
|
||||
</findStrings>
|
||||
<replaceStrings>
|
||||
<replace>is_auto_code</replace>
|
||||
<replace>auto_code_type</replace>
|
||||
<replace>self.session.urls</replace>
|
||||
<replace>self.session.httpClint</replace>
|
||||
</replaceStrings>
|
||||
</component>
|
||||
<component name="Git.Settings">
|
||||
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
|
||||
</component>
|
||||
<component name="IdeDocumentHistory">
|
||||
<option name="CHANGED_PATHS">
|
||||
<list>
|
||||
<option value="$PROJECT_DIR$/inter/CheckRandCodeAnsyn.py" />
|
||||
<option value="$PROJECT_DIR$/inter/getPassCodeNewOrder.py" />
|
||||
<option value="$PROJECT_DIR$/inter/getPassCodeNewOrderAndLogin.py" />
|
||||
<option value="$PROJECT_DIR$/inter/ConfirmSingleForQueue.py" />
|
||||
<option value="$PROJECT_DIR$/init/SelectTicketInfoFast.py" />
|
||||
<option value="$PROJECT_DIR$/config/ticketConf.py" />
|
||||
<option value="$PROJECT_DIR$/requirements.txt" />
|
||||
<option value="$PROJECT_DIR$/.gitignore" />
|
||||
<option value="$PROJECT_DIR$/run.py" />
|
||||
<option value="$PROJECT_DIR$/agency/CdnPar.py" />
|
||||
<option value="$PROJECT_DIR$/agency/cdn_utils.py" />
|
||||
<option value="$PROJECT_DIR$/inter/GetRandCode.py" />
|
||||
<option value="$PROJECT_DIR$/init/login.py" />
|
||||
<option value="$PROJECT_DIR$/inter/GetPassCodeNewOrderAndLogin.py" />
|
||||
<option value="$PROJECT_DIR$/inter/CheckOrderInfo.py" />
|
||||
<option value="$PROJECT_DIR$/inter/SubmitOrderRequest.py" />
|
||||
<option value="$PROJECT_DIR$/inter/GetQueueCount.py" />
|
||||
<option value="$PROJECT_DIR$/inter/GetQueueCountAsync.py" />
|
||||
<option value="$PROJECT_DIR$/Update.md" />
|
||||
<option value="$PROJECT_DIR$/myUrllib/httpUtils.py" />
|
||||
<option value="$PROJECT_DIR$/inter/ConfirmSingleForQueueAsys.py" />
|
||||
<option value="$PROJECT_DIR$/inter/CheckUser.py" />
|
||||
<option value="$PROJECT_DIR$/README.md" />
|
||||
<option value="$PROJECT_DIR$/inter/Query.py" />
|
||||
<option value="$PROJECT_DIR$/init/select_ticket_info.py" />
|
||||
<option value="$PROJECT_DIR$/inter/GetPassengerDTOs.py" />
|
||||
<option value="$PROJECT_DIR$/inter/QueryOrderWaitTime.py" />
|
||||
<option value="$PROJECT_DIR$/tmp/log/2018-10-17.log" />
|
||||
<option value="$PROJECT_DIR$/config/urlConf.py" />
|
||||
<option value="$PROJECT_DIR$/inter/AutoSubmitOrderRequest.py" />
|
||||
<option value="$PROJECT_DIR$/config/ticket_config.yaml" />
|
||||
</list>
|
||||
</option>
|
||||
</component>
|
||||
<component name="JsBuildToolGruntFileManager" detection-done="true" sorting="DEFINITION_ORDER" />
|
||||
<component name="JsBuildToolPackageJson" detection-done="true" sorting="DEFINITION_ORDER" />
|
||||
<component name="JsGulpfileManager">
|
||||
|
@ -209,7 +114,7 @@
|
|||
<component name="ProjectFrameBounds" fullScreen="true">
|
||||
<option name="y" value="23" />
|
||||
<option name="width" value="1440" />
|
||||
<option name="height" value="812" />
|
||||
<option name="height" value="829" />
|
||||
</component>
|
||||
<component name="ProjectLevelVcsManager" settingsEditedManually="true">
|
||||
<ConfirmationsSetting value="1" id="Add" />
|
||||
|
@ -226,11 +131,6 @@
|
|||
<item name="12306" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="12306" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
<path>
|
||||
<item name="12306" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="12306" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="config" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
</expand>
|
||||
<select />
|
||||
</subPane>
|
||||
|
@ -239,9 +139,7 @@
|
|||
</panes>
|
||||
</component>
|
||||
<component name="PropertiesComponent">
|
||||
<property name="SearchEverywhereHistoryKey" value="query	FILE	file:///usr/local/py_work/12306/inter/Query.py confirmSingleForQueueAsys	FILE	file:///usr/local/py_work/12306/inter/ConfirmSingleForQueueAsys.py check	FILE	file:///usr/local/py_work/12306/inter/CheckUser.py url	FILE	file:///usr/local/py_work/12306/config/urlConf.py get	FILE	file:///usr/local/py_work/12306/inter/GetPassengerDTOs.py httpc	null	null tt	FILE	file:///usr/local/py_work/12306/myUrllib/httpUtils.py urls	null	null htt	FILE	file:///usr/local/py_work/12306/myUrllib/httpUtils.py createOrder	null	null login	FILE	file:///usr/local/py_work/12306/init/login.py urlc	FILE	file:///usr/local/py_work/12306/config/urlConf.py" />
|
||||
<property name="WebServerToolWindowFactoryState" value="false" />
|
||||
<property name="last_opened_file_path" value="$PROJECT_DIR$" />
|
||||
<property name="settings.editor.selected.configurable" value="com.jetbrains.python.configuration.PyActiveSdkModuleConfigurable" />
|
||||
</component>
|
||||
<component name="RunDashboard">
|
||||
|
@ -256,223 +154,12 @@
|
|||
</list>
|
||||
</option>
|
||||
</component>
|
||||
<component name="RunManager" selected="Python.run">
|
||||
<configuration name="run" type="PythonConfigurationType" factoryName="Python" temporary="true">
|
||||
<module name="12306" />
|
||||
<option name="INTERPRETER_OPTIONS" value="" />
|
||||
<option name="PARENT_ENVS" value="true" />
|
||||
<envs>
|
||||
<env name="PYTHONUNBUFFERED" value="1" />
|
||||
</envs>
|
||||
<option name="SDK_HOME" value="" />
|
||||
<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$/run.py" />
|
||||
<option name="PARAMETERS" value="" />
|
||||
<option name="SHOW_COMMAND_LINE" value="false" />
|
||||
<option name="EMULATE_TERMINAL" value="false" />
|
||||
<option name="MODULE_MODE" value="false" />
|
||||
</configuration>
|
||||
<configuration name="select_ticket_info" type="PythonConfigurationType" factoryName="Python" temporary="true">
|
||||
<module name="12306" />
|
||||
<option name="INTERPRETER_OPTIONS" value="" />
|
||||
<option name="PARENT_ENVS" value="true" />
|
||||
<envs>
|
||||
<env name="PYTHONUNBUFFERED" value="1" />
|
||||
</envs>
|
||||
<option name="SDK_HOME" value="" />
|
||||
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/init" />
|
||||
<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$/init/select_ticket_info.py" />
|
||||
<option name="PARAMETERS" value="" />
|
||||
<option name="SHOW_COMMAND_LINE" value="false" />
|
||||
<option name="EMULATE_TERMINAL" value="false" />
|
||||
<option name="MODULE_MODE" value="false" />
|
||||
</configuration>
|
||||
<configuration default="true" type="DjangoTestsConfigurationType" factoryName="Django tests">
|
||||
<module name="12306" />
|
||||
<option name="INTERPRETER_OPTIONS" value="" />
|
||||
<option name="PARENT_ENVS" value="true" />
|
||||
<envs>
|
||||
<env name="PYTHONUNBUFFERED" value="1" />
|
||||
</envs>
|
||||
<option name="SDK_HOME" value="" />
|
||||
<option name="WORKING_DIRECTORY" value="" />
|
||||
<option name="IS_MODULE_SDK" value="false" />
|
||||
<option name="ADD_CONTENT_ROOTS" value="true" />
|
||||
<option name="ADD_SOURCE_ROOTS" value="true" />
|
||||
<EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
|
||||
<option name="TARGET" value="" />
|
||||
<option name="SETTINGS_FILE" value="" />
|
||||
<option name="CUSTOM_SETTINGS" value="false" />
|
||||
<option name="USE_OPTIONS" value="false" />
|
||||
<option name="OPTIONS" value="" />
|
||||
</configuration>
|
||||
<configuration default="true" type="PyBehaveRunConfigurationType" factoryName="Behave">
|
||||
<module name="12306" />
|
||||
<option name="INTERPRETER_OPTIONS" value="" />
|
||||
<option name="PARENT_ENVS" value="true" />
|
||||
<option name="SDK_HOME" value="" />
|
||||
<option name="WORKING_DIRECTORY" value="" />
|
||||
<option name="IS_MODULE_SDK" value="false" />
|
||||
<option name="ADD_CONTENT_ROOTS" value="true" />
|
||||
<option name="ADD_SOURCE_ROOTS" value="true" />
|
||||
<EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
|
||||
<option name="ADDITIONAL_ARGS" value="" />
|
||||
</configuration>
|
||||
<configuration default="true" type="PyLettuceRunConfigurationType" factoryName="Lettuce">
|
||||
<module name="12306" />
|
||||
<option name="INTERPRETER_OPTIONS" value="" />
|
||||
<option name="PARENT_ENVS" value="true" />
|
||||
<option name="SDK_HOME" value="" />
|
||||
<option name="WORKING_DIRECTORY" value="" />
|
||||
<option name="IS_MODULE_SDK" value="false" />
|
||||
<option name="ADD_CONTENT_ROOTS" value="true" />
|
||||
<option name="ADD_SOURCE_ROOTS" value="true" />
|
||||
<EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
|
||||
<option name="ADDITIONAL_ARGS" value="" />
|
||||
</configuration>
|
||||
<configuration default="true" type="PythonConfigurationType" factoryName="Python">
|
||||
<module name="12306" />
|
||||
<option name="INTERPRETER_OPTIONS" value="" />
|
||||
<option name="PARENT_ENVS" value="true" />
|
||||
<envs>
|
||||
<env name="PYTHONUNBUFFERED" value="1" />
|
||||
</envs>
|
||||
<option name="SDK_HOME" value="" />
|
||||
<option name="WORKING_DIRECTORY" value="" />
|
||||
<option name="IS_MODULE_SDK" value="false" />
|
||||
<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="" />
|
||||
<option name="PARAMETERS" value="" />
|
||||
<option name="SHOW_COMMAND_LINE" value="false" />
|
||||
<option name="EMULATE_TERMINAL" value="false" />
|
||||
<option name="MODULE_MODE" value="false" />
|
||||
</configuration>
|
||||
<configuration default="true" type="Python.FlaskServer" factoryName="Flask server">
|
||||
<module name="12306" />
|
||||
<option name="INTERPRETER_OPTIONS" value="" />
|
||||
<option name="PARENT_ENVS" value="true" />
|
||||
<option name="SDK_HOME" value="" />
|
||||
<option name="WORKING_DIRECTORY" value="" />
|
||||
<option name="IS_MODULE_SDK" value="false" />
|
||||
<option name="ADD_CONTENT_ROOTS" value="true" />
|
||||
<option name="ADD_SOURCE_ROOTS" value="true" />
|
||||
<EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
|
||||
<option name="launchJavascriptDebuger" value="false" />
|
||||
</configuration>
|
||||
<configuration default="true" type="Tox" factoryName="Tox">
|
||||
<module name="12306" />
|
||||
<option name="INTERPRETER_OPTIONS" value="" />
|
||||
<option name="PARENT_ENVS" value="true" />
|
||||
<option name="SDK_HOME" value="" />
|
||||
<option name="WORKING_DIRECTORY" value="" />
|
||||
<option name="IS_MODULE_SDK" value="false" />
|
||||
<option name="ADD_CONTENT_ROOTS" value="true" />
|
||||
<option name="ADD_SOURCE_ROOTS" value="true" />
|
||||
<EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
|
||||
</configuration>
|
||||
<configuration default="true" type="tests" factoryName="Doctests">
|
||||
<module name="12306" />
|
||||
<option name="INTERPRETER_OPTIONS" value="" />
|
||||
<option name="PARENT_ENVS" value="true" />
|
||||
<option name="SDK_HOME" value="" />
|
||||
<option name="WORKING_DIRECTORY" value="" />
|
||||
<option name="IS_MODULE_SDK" value="false" />
|
||||
<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="" />
|
||||
<option name="CLASS_NAME" value="" />
|
||||
<option name="METHOD_NAME" value="" />
|
||||
<option name="FOLDER_NAME" value="" />
|
||||
<option name="TEST_TYPE" value="TEST_SCRIPT" />
|
||||
<option name="PATTERN" value="" />
|
||||
<option name="USE_PATTERN" value="false" />
|
||||
</configuration>
|
||||
<configuration default="true" type="tests" factoryName="Nosetests">
|
||||
<module name="12306" />
|
||||
<option name="INTERPRETER_OPTIONS" value="" />
|
||||
<option name="PARENT_ENVS" value="true" />
|
||||
<option name="SDK_HOME" value="" />
|
||||
<option name="WORKING_DIRECTORY" value="" />
|
||||
<option name="IS_MODULE_SDK" value="false" />
|
||||
<option name="ADD_CONTENT_ROOTS" value="true" />
|
||||
<option name="ADD_SOURCE_ROOTS" value="true" />
|
||||
<EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
|
||||
<option name="_new_regexPattern" value="""" />
|
||||
<option name="_new_additionalArguments" value="""" />
|
||||
<option name="_new_target" value="""" />
|
||||
<option name="_new_targetType" value=""PATH"" />
|
||||
</configuration>
|
||||
<configuration default="true" type="tests" factoryName="Twisted Trial">
|
||||
<module name="12306" />
|
||||
<option name="INTERPRETER_OPTIONS" value="" />
|
||||
<option name="PARENT_ENVS" value="true" />
|
||||
<option name="SDK_HOME" value="" />
|
||||
<option name="WORKING_DIRECTORY" value="" />
|
||||
<option name="IS_MODULE_SDK" value="false" />
|
||||
<option name="ADD_CONTENT_ROOTS" value="true" />
|
||||
<option name="ADD_SOURCE_ROOTS" value="true" />
|
||||
<EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
|
||||
<option name="_new_additionalArguments" value="""" />
|
||||
<option name="_new_target" value="""" />
|
||||
<option name="_new_targetType" value=""PATH"" />
|
||||
</configuration>
|
||||
<configuration default="true" type="tests" factoryName="Unittests">
|
||||
<module name="12306" />
|
||||
<option name="INTERPRETER_OPTIONS" value="" />
|
||||
<option name="PARENT_ENVS" value="true" />
|
||||
<option name="SDK_HOME" value="" />
|
||||
<option name="WORKING_DIRECTORY" value="" />
|
||||
<option name="IS_MODULE_SDK" value="false" />
|
||||
<option name="ADD_CONTENT_ROOTS" value="true" />
|
||||
<option name="ADD_SOURCE_ROOTS" value="true" />
|
||||
<EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
|
||||
<option name="_new_additionalArguments" value="""" />
|
||||
<option name="_new_target" value="""" />
|
||||
<option name="_new_targetType" value=""PATH"" />
|
||||
</configuration>
|
||||
<configuration default="true" type="tests" factoryName="py.test">
|
||||
<module name="12306" />
|
||||
<option name="INTERPRETER_OPTIONS" value="" />
|
||||
<option name="PARENT_ENVS" value="true" />
|
||||
<option name="SDK_HOME" value="" />
|
||||
<option name="WORKING_DIRECTORY" value="" />
|
||||
<option name="IS_MODULE_SDK" value="false" />
|
||||
<option name="ADD_CONTENT_ROOTS" value="true" />
|
||||
<option name="ADD_SOURCE_ROOTS" value="true" />
|
||||
<EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
|
||||
<option name="_new_keywords" value="""" />
|
||||
<option name="_new_additionalArguments" value="""" />
|
||||
<option name="_new_target" value="""" />
|
||||
<option name="_new_targetType" value=""PATH"" />
|
||||
</configuration>
|
||||
<list>
|
||||
<item itemvalue="Python.run" />
|
||||
<item itemvalue="Python.select_ticket_info" />
|
||||
</list>
|
||||
<recent_temporary>
|
||||
<list>
|
||||
<item itemvalue="Python.run" />
|
||||
<item itemvalue="Python.select_ticket_info" />
|
||||
</list>
|
||||
</recent_temporary>
|
||||
</component>
|
||||
<component name="SvnConfiguration">
|
||||
<configuration />
|
||||
</component>
|
||||
<component name="TaskManager">
|
||||
<task active="true" id="Default" summary="Default task">
|
||||
<changelist id="e3073fd1-1758-4def-8eb5-379307a272f8" name="Default" comment="" />
|
||||
<changelist id="4ff88715-dd0d-4e26-8ea7-b7b28038ca10" name="Default" comment="" />
|
||||
<created>1535103824843</created>
|
||||
<option name="number" value="Default" />
|
||||
<option name="presentableId" value="Default" />
|
||||
|
@ -590,30 +277,27 @@
|
|||
<option name="project" value="LOCAL" />
|
||||
<updated>1540282122550</updated>
|
||||
</task>
|
||||
<option name="localTasksCounter" value="17" />
|
||||
<task id="LOCAL-00017" summary="更新群号">
|
||||
<created>1547460780535</created>
|
||||
<option name="number" value="00017" />
|
||||
<option name="presentableId" value="LOCAL-00017" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1547460780535</updated>
|
||||
</task>
|
||||
<servers />
|
||||
</component>
|
||||
<component name="TodoView">
|
||||
<todo-panel id="selected-file">
|
||||
<is-autoscroll-to-source value="true" />
|
||||
</todo-panel>
|
||||
<todo-panel id="all">
|
||||
<are-packages-shown value="true" />
|
||||
<is-autoscroll-to-source value="true" />
|
||||
</todo-panel>
|
||||
</component>
|
||||
<component name="ToolWindowManager">
|
||||
<frame x="0" y="0" width="1440" height="900" extended-state="6" />
|
||||
<frame x="0" y="0" width="1440" height="900" extended-state="0" />
|
||||
<editor active="true" />
|
||||
<layout>
|
||||
<window_info anchor="bottom" id="TODO" order="6" weight="0.32969698" />
|
||||
<window_info anchor="bottom" id="Event Log" order="7" sideWeight="0.5007153" side_tool="true" weight="0.32867134" />
|
||||
<window_info anchor="bottom" id="Database Changes" order="7" show_stripe_button="false" />
|
||||
<window_info active="true" anchor="bottom" id="Run" order="2" visible="true" weight="0.42303032" />
|
||||
<window_info anchor="bottom" id="Run" order="2" weight="0.42303032" />
|
||||
<window_info anchor="bottom" id="Version Control" order="7" weight="0.32447553" />
|
||||
<window_info anchor="bottom" id="Python Console" order="7" sideWeight="0.49928468" weight="0.32447553" />
|
||||
<window_info anchor="bottom" id="Terminal" order="7" sideWeight="0.49928468" weight="0.32484847" />
|
||||
<window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.3311874" />
|
||||
<window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.33547926" />
|
||||
<window_info anchor="bottom" id="Docker" order="7" show_stripe_button="false" />
|
||||
<window_info anchor="right" id="Database" order="3" />
|
||||
<window_info anchor="right" id="SciView" order="3" />
|
||||
|
@ -632,32 +316,6 @@
|
|||
<component name="TypeScriptGeneratedFilesManager">
|
||||
<option name="version" value="1" />
|
||||
</component>
|
||||
<component name="Vcs.Log.Tabs.Properties">
|
||||
<option name="TAB_STATES">
|
||||
<map>
|
||||
<entry key="MAIN">
|
||||
<value>
|
||||
<State>
|
||||
<option name="RECENTLY_FILTERED_USER_GROUPS">
|
||||
<collection />
|
||||
</option>
|
||||
<option name="RECENTLY_FILTERED_BRANCH_GROUPS">
|
||||
<collection />
|
||||
</option>
|
||||
<option name="COLUMN_ORDER">
|
||||
<list>
|
||||
<option value="0" />
|
||||
<option value="1" />
|
||||
<option value="2" />
|
||||
<option value="3" />
|
||||
</list>
|
||||
</option>
|
||||
</State>
|
||||
</value>
|
||||
</entry>
|
||||
</map>
|
||||
</option>
|
||||
</component>
|
||||
<component name="VcsContentAnnotationSettings">
|
||||
<option name="myLimit" value="2678400000" />
|
||||
</component>
|
||||
|
@ -674,28 +332,12 @@
|
|||
<MESSAGE value="1、优化查询策略 2、快读下单修复 3、关闭cdn功能" />
|
||||
<MESSAGE value="update readme" />
|
||||
<MESSAGE value="1、修改提交订单逻辑问题,感谢群里小伙伴发现 2、查询接口修改" />
|
||||
<option name="LAST_COMMIT_MESSAGE" value="1、修改提交订单逻辑问题,感谢群里小伙伴发现 2、查询接口修改" />
|
||||
</component>
|
||||
<component name="XDebuggerManager">
|
||||
<breakpoint-manager>
|
||||
<option name="time" value="18" />
|
||||
</breakpoint-manager>
|
||||
<MESSAGE value="更新群号" />
|
||||
<option name="LAST_COMMIT_MESSAGE" value="更新群号" />
|
||||
</component>
|
||||
<component name="editorHistoryManager">
|
||||
<entry file="file://$PROJECT_DIR$/tmp/log/2018-08-27.log">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="-4727">
|
||||
<caret line="100" column="79" lean-forward="true" selection-start-line="100" selection-start-column="79" selection-end-line="100" selection-end-column="79" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/tmp/log/2018-08-24.log">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="3463">
|
||||
<caret line="430" column="69" lean-forward="true" selection-start-line="430" selection-start-column="69" selection-end-line="430" selection-end-column="69" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/tmp/log/2018-08-27.log" />
|
||||
<entry file="file://$PROJECT_DIR$/tmp/log/2018-08-24.log" />
|
||||
<entry file="file://$PROJECT_DIR$/init/SelectTicketInfoFast.py" />
|
||||
<entry file="file://$PROJECT_DIR$/config/emailConf.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
|
@ -704,18 +346,7 @@
|
|||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/tmp/log/2018-08-31.log">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="-1157" />
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/.gitignore">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="64">
|
||||
<caret line="4" column="1" selection-start-line="4" selection-start-column="1" selection-end-line="4" selection-end-column="1" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/tmp/log/2018-08-31.log" />
|
||||
<entry file="file://$PROJECT_DIR$/damatuCode/ruokuai.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="27">
|
||||
|
@ -731,20 +362,8 @@
|
|||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/tmp/log/2018-09-02.log">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="245">
|
||||
<caret line="84" column="264" selection-start-line="84" selection-start-column="247" selection-end-line="84" selection-end-column="264" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/tmp/log/2018-09-04.log">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="278">
|
||||
<caret line="40" column="81" selection-start-line="40" selection-start-column="67" selection-end-line="40" selection-end-column="81" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/tmp/log/2018-09-02.log" />
|
||||
<entry file="file://$PROJECT_DIR$/tmp/log/2018-09-04.log" />
|
||||
<entry file="file://$PROJECT_DIR$/init/login.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="330">
|
||||
|
@ -752,13 +371,7 @@
|
|||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/tmp/log/2018-09-18.log">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="570">
|
||||
<caret line="832" column="21" selection-start-line="832" selection-end-line="832" selection-end-column="21" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/tmp/log/2018-09-18.log" />
|
||||
<entry file="file://$APPLICATION_HOME_DIR$/helpers/typeshed/stdlib/2/typing.pyi">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="154">
|
||||
|
@ -766,27 +379,9 @@
|
|||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/tmp/log/2018-09-19.log">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="500">
|
||||
<caret line="4952" column="196" selection-start-line="4952" selection-start-column="184" selection-end-line="4952" selection-end-column="196" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/tmp/log/2018-09-20.log">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="163">
|
||||
<caret line="156" selection-start-line="156" selection-end-line="157" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/tmp/log/2018-09-21.log">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="250">
|
||||
<caret line="534" column="27" selection-start-line="534" selection-start-column="27" selection-end-line="534" selection-end-column="27" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/tmp/log/2018-09-19.log" />
|
||||
<entry file="file://$PROJECT_DIR$/tmp/log/2018-09-20.log" />
|
||||
<entry file="file://$PROJECT_DIR$/tmp/log/2018-09-21.log" />
|
||||
<entry file="file://$PROJECT_DIR$/run.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state>
|
||||
|
@ -811,7 +406,7 @@
|
|||
<entry file="file://$PROJECT_DIR$/requirements.txt">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="96">
|
||||
<caret line="6" column="16" lean-forward="true" selection-start-line="6" selection-start-column="16" selection-end-line="6" selection-end-column="16" />
|
||||
<caret line="6" column="16" selection-start-line="6" selection-start-column="16" selection-end-line="6" selection-end-column="16" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
|
@ -834,13 +429,7 @@
|
|||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/tmp/log/2018-09-28.log">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="1058">
|
||||
<caret line="74" column="122" lean-forward="true" selection-start-line="74" selection-start-column="122" selection-end-line="74" selection-end-column="122" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/tmp/log/2018-09-28.log" />
|
||||
<entry file="file://$PROJECT_DIR$/inter/GetRandCode.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="240">
|
||||
|
@ -865,8 +454,8 @@
|
|||
<entry file="file://$PROJECT_DIR$/README.md">
|
||||
<provider selected="true" editor-type-id="split-provider[text-editor;MarkdownPreviewEditor]">
|
||||
<state split_layout="SPLIT">
|
||||
<first_editor relative-caret-position="350">
|
||||
<caret line="55" lean-forward="true" selection-start-line="51" selection-end-line="55" />
|
||||
<first_editor relative-caret-position="848">
|
||||
<caret line="53" column="4" selection-start-line="53" selection-start-column="4" selection-end-line="56" selection-end-column="23" />
|
||||
</first_editor>
|
||||
<second_editor>
|
||||
<js_state />
|
||||
|
@ -881,20 +470,8 @@
|
|||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/tmp/log/2018-09-30.log">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="295">
|
||||
<caret line="654" selection-start-line="654" selection-end-line="655" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/tmp/log/2018-10-05.log">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="181">
|
||||
<caret line="36" selection-start-line="36" selection-end-line="37" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/tmp/log/2018-09-30.log" />
|
||||
<entry file="file://$PROJECT_DIR$/tmp/log/2018-10-05.log" />
|
||||
<entry file="file://$PROJECT_DIR$/myUrllib/httpUtils.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="746">
|
||||
|
@ -923,41 +500,19 @@
|
|||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/tmp/log/2018-10-06.log">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="304">
|
||||
<caret line="95" column="36" selection-start-line="95" selection-start-column="36" selection-end-line="95" selection-end-column="36" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/tmp/log/2018-10-13.log">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="129">
|
||||
<caret line="26" column="6" lean-forward="true" selection-start-line="26" selection-start-column="6" selection-end-line="26" selection-end-column="6" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/tmp/log/2018-10-06.log" />
|
||||
<entry file="file://$PROJECT_DIR$/tmp/log/2018-10-13.log" />
|
||||
<entry file="file://$PROJECT_DIR$/inter/Query.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="784">
|
||||
<caret line="49" column="40" selection-start-line="49" selection-start-column="40" selection-end-line="49" selection-end-column="40" />
|
||||
<folding>
|
||||
<element signature="e#15#26#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/config/TicketEnmu.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="416">
|
||||
<caret line="26" column="4" selection-start-line="26" selection-start-column="4" selection-end-line="26" selection-end-column="4" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/init/select_ticket_info.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="3168">
|
||||
<caret line="243" column="47" selection-start-line="243" selection-start-column="47" selection-end-line="243" selection-end-column="47" />
|
||||
<state relative-caret-position="1184">
|
||||
<caret line="104" column="36" selection-start-line="104" selection-start-column="36" selection-end-line="104" selection-end-column="36" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
|
@ -968,20 +523,7 @@
|
|||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/tmp/log/2018-10-17.log">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="258">
|
||||
<caret line="29" column="68" selection-start-line="29" selection-start-column="46" selection-end-line="29" selection-end-column="68" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/inter/QueryOrderWaitTime.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="433">
|
||||
<caret line="89" column="32" selection-start-line="89" selection-start-column="32" selection-end-line="89" selection-end-column="32" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/tmp/log/2018-10-17.log" />
|
||||
<entry file="file://$PROJECT_DIR$/inter/GetQueueCountAsync.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="96">
|
||||
|
@ -1033,8 +575,29 @@
|
|||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/config/ticket_config.yaml">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="448">
|
||||
<caret line="28" column="14" selection-start-line="28" selection-start-column="14" selection-end-line="28" selection-end-column="14" />
|
||||
<state relative-caret-position="192">
|
||||
<caret line="12" column="19" selection-start-line="12" selection-start-column="19" selection-end-line="12" selection-end-column="19" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/config/TicketEnmu.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="416">
|
||||
<caret line="26" column="4" selection-start-line="26" selection-start-column="4" selection-end-line="26" selection-end-column="4" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/inter/QueryOrderWaitTime.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="48">
|
||||
<caret line="34" column="122" selection-start-line="34" selection-start-column="122" selection-end-line="34" selection-end-column="122" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/.gitignore">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="64">
|
||||
<caret line="4" column="1" selection-start-line="4" selection-start-column="1" selection-end-line="4" selection-end-column="1" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
|
|
17
README.md
17
README.md
|
@ -47,7 +47,14 @@
|
|||

|
||||
|
||||
- 项目声明:
|
||||
- 本软件只供学习交流使用,务作为商业用途,交流群号:286271084(已满), 2群:649992274(已满),请加3群(未满), 群号:632501142、4群(未满), 群号:606340519
|
||||
- 本软件只供学习交流使用,务作为商业用途,交流群号
|
||||
- 1群:286271084(已满)
|
||||
- 2群:649992274(已满)
|
||||
- 3群:632501142(已满)
|
||||
- 4群: 606340519(已满)
|
||||
- 5群: 948526733(未满)
|
||||
- 6群: 444101020(未满)
|
||||
- 7群: 660689659(未满)
|
||||
- 请不要重复加群,一个群就可以了,把机会留给更多人
|
||||
- **进群先看公告!!!进群先看公告!!!进群先看公告!!! 重要的事情说三遍**
|
||||
- 能为你抢到一张回家的票,是我最大的心愿
|
||||
|
@ -75,12 +82,16 @@
|
|||
- 学生票issues [学生票修改](https://github.com/testerSunshine/12306/issues/47)
|
||||
- 依赖安装不对的问题(ImportError)[requirements.txt问题](https://github.com/testerSunshine/12306/issues/91)
|
||||
- 若快豆子疑问 [点我](https://github.com/testerSunshine/12306/issues/67)
|
||||
- IOError: 【Errno 0】 Error 问题 [点我](https://github.com/testerSunshine/12306/issues/159)
|
||||
|
||||
- 测试下单接口是否可用,有两个下单接口,随便用哪个都ok
|
||||
- 如果下载验证码过期或者下载失败的问题,应该是12306封ip的策略,多重试几次,12306现在封服务器(阿里云和腾讯云)ip比较严重,尽量不要放在服务器里面
|
||||
- 目前12306对服务器ip比较敏感,大家还是在自己家里挂着吧
|
||||
- 如果想使用此项目的gui版本,请加群,目前只有mac版本
|
||||
- 感谢一下小伙伴对本项目提供的帮助
|
||||
- @ sun7127@126.com
|
||||
- @才
|
||||
- @sun7127@126.com
|
||||
- @ 才
|
||||
- @MonsterTan
|
||||
- 以及所有为此项目提供pr的同学
|
||||
- [更新日志](Update.md)
|
||||
|
||||
|
|
|
@ -6,6 +6,7 @@ import requests
|
|||
|
||||
from agency.agency_tools import proxy
|
||||
from config.emailConf import sendEmail
|
||||
from config.pushbearConf import sendPushBear
|
||||
|
||||
|
||||
def _set_header_default():
|
||||
|
@ -38,6 +39,13 @@ class testAll(unittest.TestCase):
|
|||
:return:
|
||||
"""
|
||||
sendEmail("订票小助手测试一下")
|
||||
|
||||
def testPushbear(self):
|
||||
"""
|
||||
实测pushbear是否可用
|
||||
:return:
|
||||
"""
|
||||
sendPushBear("pushbear 微信通知测试一下")
|
||||
|
||||
# def testConfig(self):
|
||||
# """
|
||||
|
|
|
@ -134,3 +134,6 @@
|
|||
- mac和linux服务器自动对点
|
||||
- 增加预售踩点查询下单,经测试,误差在0.004s
|
||||
|
||||
- 2019.01.12更新
|
||||
- 增加对python3语法的支持
|
||||
- 删除校验时间很多机器不兼容的问题(win10会阻拦对时功能,导致大面积报错),如果是预售,为了不耽误宝贵的时间,请手动对时
|
||||
|
|
|
@ -76,4 +76,4 @@ class CDNProxy:
|
|||
|
||||
if __name__ == '__main__':
|
||||
cdn = CDNProxy()
|
||||
cdn.open_cdn_file()
|
||||
print(cdn.open_cdn_file())
|
||||
|
|
|
@ -15,21 +15,21 @@ def autoSynchroTime():
|
|||
|
||||
hosts = ['ntp1.aliyun.com', 'ntp2.aliyun.com', 'ntp3.aliyun.com', 'ntp4.aliyun.com', 'cn.pool.ntp.org']
|
||||
|
||||
print(u"正在同步时间,请耐心等待30秒左右")
|
||||
print(u"正在同步时间,请耐心等待30秒左右,如果下面有错误发送,可以忽略!!")
|
||||
print(u"系统当前时间{}".format(str(datetime.datetime.now())[:22]))
|
||||
system = platform.system()
|
||||
if system == "Windows": # windows 同步时间未测试过,参考地址:https://www.jianshu.com/p/92ec15da6cc3
|
||||
for host in hosts:
|
||||
os.system('w32tm /register')
|
||||
os.system('net start w32time')
|
||||
os.system('w32tm /config /manualpeerlist:"{}" /syncfromflags:manual /reliable:yes /update'.format(host))
|
||||
os.system('ping -n 3 127.0.0.1 >nul')
|
||||
sin = os.system('w32tm /resync')
|
||||
os.popen('w32tm /register')
|
||||
os.popen('net start w32time')
|
||||
os.popen('w32tm /config /manualpeerlist:"{}" /syncfromflags:manual /reliable:yes /update'.format(host))
|
||||
os.popen('ping -n 3 127.0.0.1 >nul')
|
||||
sin = os.popen('w32tm /resync')
|
||||
if sin is 0:
|
||||
break
|
||||
else: # mac同步地址,如果ntpdate未安装,brew install ntpdate linux 安装 yum install -y ntpdate
|
||||
for host in hosts:
|
||||
sin = os.system('ntpdate {}'.format(host))
|
||||
sin = os.popen('ntpdate {}'.format(host))
|
||||
if sin is 0:
|
||||
break
|
||||
print(u"同步后时间:{}".format(str(datetime.datetime.now())[:22]))
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
import datetime
|
||||
import os
|
||||
import random
|
||||
import sys
|
||||
import time
|
||||
|
||||
|
@ -102,9 +103,9 @@ def getCacheFile(cacheType):
|
|||
def checkSleepTime(session):
|
||||
now = datetime.datetime.now()
|
||||
if now.hour >= 23 or now.hour < 6:
|
||||
print(u"12306休息时间,本程序自动停止,明天早上七点将自动运行")
|
||||
print(u"12306休息时间,本程序自动停止,明天早上六点点将自动运行")
|
||||
open_time = datetime.datetime(now.year, now.month, now.day, 6)
|
||||
if open_time < now:
|
||||
open_time += datetime.timedelta(1)
|
||||
time.sleep((open_time - now).seconds)
|
||||
time.sleep((open_time - now).seconds + round(random.uniform(1, 10)))
|
||||
session.call_login()
|
||||
|
|
|
@ -0,0 +1,26 @@
|
|||
# -*- coding: utf8 -*-
|
||||
__author__ = 'kongkongyzt'
|
||||
import requests
|
||||
from config.ticketConf import _get_yaml
|
||||
|
||||
PUSH_BEAR_API_PATH = "https://pushbear.ftqq.com/sub"
|
||||
|
||||
def sendPushBear(msg):
|
||||
"""
|
||||
pushBear微信通知
|
||||
:param str: 通知内容 content
|
||||
:return:
|
||||
"""
|
||||
conf = _get_yaml()
|
||||
if conf["pushbear_conf"]["is_pushbear"] and conf["pushbear_conf"]["send_key"].strip() != "":
|
||||
try:
|
||||
requests.get("{}?sendkey={}&text=来自12306抢票助手的通知&desp={}".format(PUSH_BEAR_API_PATH, conf["pushbear_conf"]["send_key"].strip(), msg))
|
||||
print(u"已下发 pushbear 微信通知, 请查收")
|
||||
except Exception as e:
|
||||
print(u"pushbear 配置有误 {}".format(e))
|
||||
else:
|
||||
pass
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
sendPushBear(1)
|
|
@ -5,7 +5,8 @@ set:
|
|||
# - 2018-01-06
|
||||
# - 2018-01-07
|
||||
station_dates:
|
||||
- "2019-02-02"
|
||||
- "2019-02-10"
|
||||
- "2019-02-11"
|
||||
|
||||
# 是否根据时间范围 和 乘车类型 购票
|
||||
# 否则将需要手动填写车次
|
||||
|
@ -30,15 +31,15 @@ set:
|
|||
# - "G1353"
|
||||
# - "G1329"
|
||||
station_trains:
|
||||
- "G6172"
|
||||
- "G6186"
|
||||
- "G6154"
|
||||
- "G6153"
|
||||
- "G6184"
|
||||
- "G6173"
|
||||
|
||||
# 出发城市,比如深圳北,就填深圳就搜得到
|
||||
from_station: "广州南"
|
||||
from_station: "邵阳"
|
||||
|
||||
# 到达城市 比如深圳北,就填深圳就搜得到
|
||||
to_station: "邵阳"
|
||||
to_station: "深圳北"
|
||||
|
||||
# 座位(list) 多个座位ex:
|
||||
# - "商务座"
|
||||
|
@ -54,18 +55,18 @@ set:
|
|||
- "二等座"
|
||||
|
||||
# 当余票小于乘车人,如果选择优先提交,则删减联系人和余票数一致在提交
|
||||
is_more_ticket: True
|
||||
is_more_ticket: False
|
||||
|
||||
# 乘车人(list) 多个乘车人ex:
|
||||
# - "张三"
|
||||
# - "李四"
|
||||
ticke_peoples:
|
||||
- "文贤平"
|
||||
- "李梦云"
|
||||
# - "梁敏"
|
||||
- ""
|
||||
- ""
|
||||
|
||||
# 12306登录账号(list)
|
||||
12306account:
|
||||
- user: "13828728396"
|
||||
- user: "931128603@qq.com"
|
||||
- pwd: ""
|
||||
|
||||
# 加入小黑屋时间默认为5分钟,此功能为了防止僵尸票导致一直下单不成功错过正常的票,
|
||||
|
@ -103,10 +104,15 @@ email_conf:
|
|||
password: ""
|
||||
host: "smtp.qq.com"
|
||||
|
||||
# 是否开启 pushbear 微信提醒, 使用前需要前往 http://pushbear.ftqq.com 扫码绑定获取 send_key 并关注获得抢票结果通知的公众号
|
||||
pushbear_conf:
|
||||
is_pushbear: False
|
||||
send_key: ""
|
||||
|
||||
# 是否开启cdn查询,可以更快的检测票票 1为开启,2为关闭
|
||||
is_cdn: 1
|
||||
|
||||
# 下单接口分为两种,1 为快速下单,2 是普通下单
|
||||
# 下单接口分为两种,1 模拟网页自动捡漏下单(不稳定),2 模拟车次后面的购票按钮下单(稳如老狗)
|
||||
order_type: 2
|
||||
|
||||
# 下单模式 1 为预售,整点刷新,刷新间隔0.1-0.5S, 然后会校验时间,比如12点的预售,那脚本就会在12.00整检票,刷新订单
|
||||
|
|
|
@ -11,7 +11,7 @@ urls = {
|
|||
"Host": "kyfw.12306.cn",
|
||||
"Content-Type": 1,
|
||||
"re_try": 10,
|
||||
"re_time": 0.1,
|
||||
"re_time": 1,
|
||||
"s_time": 0.1,
|
||||
"is_logger": True,
|
||||
"is_json": True,
|
||||
|
@ -23,7 +23,7 @@ urls = {
|
|||
"Host": "kyfw.12306.cn",
|
||||
"Content-Type": 1,
|
||||
"re_try": 10,
|
||||
"re_time": 0.1,
|
||||
"re_time": 1,
|
||||
"s_time": 0.1,
|
||||
"is_logger": True,
|
||||
"is_json": True,
|
||||
|
@ -36,7 +36,7 @@ urls = {
|
|||
"Host": "kyfw.12306.cn",
|
||||
"Content-Type": 1,
|
||||
"re_try": 10,
|
||||
"re_time": 0.1,
|
||||
"re_time": 1,
|
||||
"s_time": 0.1,
|
||||
"is_logger": False,
|
||||
"is_json": False,
|
||||
|
@ -49,7 +49,7 @@ urls = {
|
|||
"Host": "kyfw.12306.cn",
|
||||
"Content-Type": 1,
|
||||
"re_try": 10,
|
||||
"re_time": 0.1,
|
||||
"re_time": 1,
|
||||
"s_time": 0.1,
|
||||
"is_logger": False,
|
||||
"is_json": False,
|
||||
|
@ -62,7 +62,7 @@ urls = {
|
|||
"Host": "kyfw.12306.cn",
|
||||
"Content-Type": 1,
|
||||
"re_try": 10,
|
||||
"re_time": 0.1,
|
||||
"re_time": 1,
|
||||
"s_time": 0.1,
|
||||
"is_logger": True,
|
||||
"is_json": True,
|
||||
|
@ -73,7 +73,7 @@ urls = {
|
|||
"Referer": "https://kyfw.12306.cn/otn/index/init",
|
||||
"Host": "kyfw.12306.cn",
|
||||
"re_try": 1,
|
||||
"re_time": 0.1,
|
||||
"re_time": 1,
|
||||
"s_time": 0.1,
|
||||
"is_logger": False,
|
||||
"is_json": False,
|
||||
|
@ -84,7 +84,7 @@ urls = {
|
|||
"Referer": "https://kyfw.12306.cn/otn/index/init",
|
||||
"Host": "kyfw.12306.cn",
|
||||
"re_try": 1,
|
||||
"re_time": 0.1,
|
||||
"re_time": 1,
|
||||
"s_time": 0.1,
|
||||
"is_logger": False,
|
||||
"is_test_cdn": True,
|
||||
|
@ -96,7 +96,7 @@ urls = {
|
|||
"Referer": "https://kyfw.12306.cn/otn/passport?redirect=/otn/login/userLogin",
|
||||
"Host": "kyfw.12306.cn",
|
||||
"re_try": 10,
|
||||
"re_time": 0.1,
|
||||
"re_time": 1,
|
||||
"s_time": 0.01,
|
||||
"is_logger": False,
|
||||
"is_json": False,
|
||||
|
@ -107,7 +107,7 @@ urls = {
|
|||
"Referer": "https://kyfw.12306.cn/otn/passport?redirect=/otn/login/userLogin",
|
||||
"Host": "kyfw.12306.cn",
|
||||
"re_try": 10,
|
||||
"re_time": 0.1,
|
||||
"re_time": 1,
|
||||
"s_time": 0.1,
|
||||
"is_logger": True,
|
||||
"is_json": True,
|
||||
|
@ -119,7 +119,7 @@ urls = {
|
|||
"Host": "kyfw.12306.cn",
|
||||
"Content-Type": 1,
|
||||
"re_try": 10,
|
||||
"re_time": 0.1,
|
||||
"re_time": 1,
|
||||
"s_time": 0.1,
|
||||
"is_logger": True,
|
||||
"is_json": True,
|
||||
|
@ -337,6 +337,18 @@ urls = {
|
|||
"is_logger": True,
|
||||
"is_json": True,
|
||||
},
|
||||
"loginAysnSuggest": { # 快速订单排队
|
||||
"req_url": "/otn/login/loginAysnSuggest",
|
||||
"req_type": "post",
|
||||
"Referer": "https://kyfw.12306.cn/otn/leftTicket/init",
|
||||
"Content-Type": 1,
|
||||
"Host": "kyfw.12306.cn",
|
||||
"re_try": 10,
|
||||
"re_time": 0.01,
|
||||
"s_time": 0.1,
|
||||
"is_logger": True,
|
||||
"is_json": True,
|
||||
},
|
||||
"cdn_host": {
|
||||
"req_url": "http://ping.chinaz.com/kyfw.12306.cn",
|
||||
"req_type": "post"
|
||||
|
|
|
@ -7,7 +7,10 @@ class RClient(object):
|
|||
|
||||
def __init__(self, username, password):
|
||||
self.username = username
|
||||
self.password = md5(password).hexdigest()
|
||||
try:
|
||||
self.password = md5(password).hexdigest()
|
||||
except TypeError:
|
||||
self.password = md5(password.encode('utf-8')).hexdigest()
|
||||
self.soft_id = '96061'
|
||||
self.soft_key = '6facb9da7bb645ad9c4a229464b2cf89'
|
||||
self.base_params = {
|
||||
|
|
|
@ -70,7 +70,10 @@ class select:
|
|||
to_station = ticket_info_config["set"]["to_station"]
|
||||
station_dates = ticket_info_config["set"]["station_dates"]
|
||||
set_names = ticket_info_config["set"]["set_type"]
|
||||
set_type = [seat_conf[x.encode("utf-8")] for x in ticket_info_config["set"]["set_type"]]
|
||||
try:
|
||||
set_type = [seat_conf[x.encode("utf-8")] for x in ticket_info_config["set"]["set_type"]]
|
||||
except KeyError:
|
||||
set_type = [seat_conf[x] for x in ticket_info_config["set"]["set_type"]]
|
||||
is_more_ticket = ticket_info_config["set"]["is_more_ticket"]
|
||||
ticke_peoples = ticket_info_config["set"]["ticke_peoples"]
|
||||
station_trains = ticket_info_config["set"]["station_trains"]
|
||||
|
@ -93,7 +96,14 @@ class select:
|
|||
|
||||
print(u"*" * 50)
|
||||
print(u"检查当前python版本为:{},目前版本只支持2.7.10-2.7.15".format(sys.version.split(" ")[0]))
|
||||
print(u"12306刷票小助手,最后更新于2019.01.08,请勿作为商业用途,交流群号:286271084(已满), 2群:649992274(已满),请加3群(未满), 群号:632501142、4群(未满), 群号:606340519")
|
||||
print(u"12306刷票小助手,最后更新于2019.01.08,请勿作为商业用途,交流群号:286271084(已满),"
|
||||
u" 2群:649992274(已满)\n"
|
||||
u" 3群:632501142(已满)\n"
|
||||
u" 4群: 606340519(已满)\n"
|
||||
u" 5群: 948526733(未满)\n"
|
||||
u" 6群: 444101020(未满)\n"
|
||||
u" 7群: 660689659(未满)\n"
|
||||
)
|
||||
if is_by_time:
|
||||
method_notie = u"购票方式:根据时间区间购票\n可接受最早出发时间:{0}\n可接受最晚抵达时间:{1}\n可接受最长旅途时间:{2}\n可接受列车类型:{3}\n" \
|
||||
.format(minutes_to_time(departure_time), minutes_to_time(arrival_time), minutes_to_time(take_time),
|
||||
|
@ -134,8 +144,12 @@ class select:
|
|||
for i in range(0, len(info)):
|
||||
n_info = info[i].split('|')
|
||||
station_name[n_info[1]] = n_info[2]
|
||||
from_station = station_name[from_station.encode("utf8")]
|
||||
to_station = station_name[to_station.encode("utf8")]
|
||||
try:
|
||||
from_station = station_name[from_station.encode("utf8")]
|
||||
to_station = station_name[to_station.encode("utf8")]
|
||||
except KeyError:
|
||||
from_station = station_name[from_station]
|
||||
to_station = station_name[to_station]
|
||||
return from_station, to_station
|
||||
|
||||
def call_login(self, auth=False):
|
||||
|
@ -182,7 +196,7 @@ class select:
|
|||
raise ticketConfigException(u"cdn列表为空,请先加载cdn")
|
||||
|
||||
def main(self):
|
||||
autoSynchroTime() # 同步时间
|
||||
# autoSynchroTime() # 同步时间
|
||||
self.cdn_certification()
|
||||
l = liftTicketInit(self)
|
||||
l.reqLiftTicketInit()
|
||||
|
@ -193,6 +207,8 @@ class select:
|
|||
t.start()
|
||||
from_station, to_station = self.station_table(self.from_station, self.to_station)
|
||||
num = 0
|
||||
s = getPassengerDTOs(session=self, ticket_peoples=self.ticke_peoples)
|
||||
s.sendGetPassengerDTOs()
|
||||
while 1:
|
||||
try:
|
||||
num += 1
|
||||
|
|
|
@ -25,7 +25,10 @@ class autoSubmitOrderRequest:
|
|||
leftTicket,
|
||||
set_type,):
|
||||
self.set_type = set_type
|
||||
self.secretStr = urllib.unquote(secretStr)
|
||||
try:
|
||||
self.secretStr = urllib.unquote(secretStr)
|
||||
except AttributeError:
|
||||
self.secretStr = urllib.parse.unquote(secretStr)
|
||||
self.train_date = train_date
|
||||
self.query_from_station_name = query_from_station_name
|
||||
self.query_to_station_name = query_to_station_name
|
||||
|
|
|
@ -79,7 +79,7 @@ class confirmSingleForQueue:
|
|||
if "status" in checkQueueOrderResult and checkQueueOrderResult["status"]:
|
||||
c_data = checkQueueOrderResult["data"] if "data" in checkQueueOrderResult else {}
|
||||
if 'submitStatus' in c_data and c_data['submitStatus'] is True:
|
||||
print(u"提交订单成功!")
|
||||
# print(u"提交订单成功!")
|
||||
qow = queryOrderWaitTime(self.session)
|
||||
qow.sendQueryOrderWaitTime()
|
||||
else:
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
# coding=utf-8
|
||||
import json
|
||||
|
||||
from config.TicketEnmu import ticket
|
||||
from myException.PassengerUserException import PassengerUserException
|
||||
import wrapcache
|
||||
|
@ -14,19 +16,21 @@ class getPassengerDTOs:
|
|||
获取乘客信息
|
||||
:return:
|
||||
"""
|
||||
def __init__(self, session, ticket_peoples, set_type, is_more_ticket_num):
|
||||
def __init__(self, session, ticket_peoples=None, set_type=None, is_more_ticket_num=None):
|
||||
"""
|
||||
:param session: 登录实例
|
||||
:param ticket_peoples: 乘客
|
||||
:param set_type: 坐席
|
||||
"""
|
||||
if ticket_peoples is None:
|
||||
ticket_peoples = []
|
||||
self.session = session
|
||||
self.ticket_peoples = ticket_peoples
|
||||
self.is_more_ticket_num = is_more_ticket_num
|
||||
self.set_type = set_type.encode("utf8")
|
||||
self.set_type = set_type
|
||||
|
||||
def sendGetPassengerDTOs(self):
|
||||
getPassengerDTOsResult = self.session.httpClint.send(self.session.urls["get_passengerDTOs"], {})
|
||||
getPassengerDTOsResult = self.session.httpClint.send(self.session.urls["get_passengerDTOs"], json.dumps({"_json_att": ""}))
|
||||
if getPassengerDTOsResult.get("data", False) and getPassengerDTOsResult["data"].get("normal_passengers", False):
|
||||
normal_passengers = getPassengerDTOsResult['data']['normal_passengers']
|
||||
_normal_passenger = [normal_passengers[i] for i in range(len(normal_passengers)) if
|
||||
|
@ -38,8 +42,10 @@ class getPassengerDTOs:
|
|||
elif getPassengerDTOsResult.get('messages', False):
|
||||
print(getPassengerDTOsResult.get('messages', False))
|
||||
else:
|
||||
print(getPassengerDTOsResult)
|
||||
raise PassengerUserException(ticket.DTO_NOT_FOUND)
|
||||
print(u"警告:您的账号可能买票有问题,获取不到联系人,请测试是否能正常下单,在捡漏或者购票!!!")
|
||||
print(u"警告:您的账号可能买票有问题,获取不到联系人,请测试是否能正常下单,在捡漏或者购票!!!")
|
||||
print(u"警告:您的账号可能买票有问题,获取不到联系人,请测试是否能正常下单,在捡漏或者购票!!!")
|
||||
# raise PassengerUserException(ticket.DTO_NOT_FOUND)
|
||||
|
||||
def getPassengerTicketStr(self, set_type):
|
||||
"""
|
||||
|
@ -57,7 +63,6 @@ class getPassengerDTOs:
|
|||
'软座': 2,
|
||||
'软卧': 4,
|
||||
'硬卧': 3,
|
||||
'动卧': 1,
|
||||
}
|
||||
return str(passengerTicketStr[set_type.replace(' ', '')])
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
# coding=utf-8
|
||||
import datetime
|
||||
import sys
|
||||
import time
|
||||
from collections import OrderedDict
|
||||
import wrapcache
|
||||
|
@ -46,7 +47,10 @@ class getQueueCount:
|
|||
:return:
|
||||
"""
|
||||
|
||||
new_train_date = filter(None, str(time.asctime(time.strptime(self.station_dates, "%Y-%m-%d"))).split(" "))
|
||||
if sys.version_info.major is 2:
|
||||
new_train_date = filter(None, str(time.asctime(time.strptime(self.station_dates, "%Y-%m-%d"))).split(" "))
|
||||
else:
|
||||
new_train_date = list(filter(None, str(time.asctime(time.strptime(self.station_dates, "%Y-%m-%d"))).split(" ")))
|
||||
data = OrderedDict()
|
||||
data['train_date'] = "{0} {1} 0{2} {3} 00:00:00 GMT+0800 (中国标准时间)".format(
|
||||
new_train_date[0],
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
# coding=utf-8
|
||||
import datetime
|
||||
import sys
|
||||
import time
|
||||
from collections import OrderedDict
|
||||
|
||||
|
@ -56,7 +57,10 @@ class getQueueCountAsync:
|
|||
- _json_att 没啥卵用,还是带上吧
|
||||
:return:
|
||||
"""
|
||||
new_train_date = filter(None, str(time.asctime(time.strptime(self.station_dates, "%Y-%m-%d"))).split(" "))
|
||||
if sys.version_info.major is 2:
|
||||
new_train_date = filter(None, str(time.asctime(time.strptime(self.station_dates, "%Y-%m-%d"))).split(" "))
|
||||
else:
|
||||
new_train_date = list(filter(None, str(time.asctime(time.strptime(self.station_dates, "%Y-%m-%d"))).split(" ")))
|
||||
data = OrderedDict()
|
||||
data['train_date'] = "{0} {1} {2} {3} 00:00:00 GMT+0800 (中国标准时间)".format(
|
||||
new_train_date[0],
|
||||
|
|
|
@ -95,7 +95,7 @@ class query:
|
|||
continue
|
||||
value = station_ticket.get("data", "")
|
||||
if not value:
|
||||
print (u'{0}-{1} 车次坐席查询为空,ip网络异常,查询url: https://kyfw.12306.cn{2}, 可以手动查询是否有票'.format(self.from_station_h,
|
||||
print(u'{0}-{1} 车次坐席查询为空,ip网络异常,查询url: https://kyfw.12306.cn{2}, 可以手动查询是否有票'.format(self.from_station_h,
|
||||
self.to_station_h,
|
||||
select_url["req_url"]))
|
||||
else:
|
||||
|
@ -103,7 +103,7 @@ class query:
|
|||
if result:
|
||||
for i in value['result']:
|
||||
ticket_info = i.split('|')
|
||||
if ticket_info[11] == "Y" and ticket_info[1].encode("utf8") == "预订": # 筛选未在开始时间内的车次
|
||||
if ticket_info[11] == "Y" and ticket_info[1] == "预订": # 筛选未在开始时间内的车次
|
||||
for j in self._station_seat:
|
||||
is_ticket_pass = ticket_info[j]
|
||||
if is_ticket_pass != '' and is_ticket_pass != '无' and is_ticket_pass != '*' and self.check_is_need_train(
|
||||
|
|
|
@ -4,6 +4,7 @@ import time
|
|||
|
||||
from config.TicketEnmu import ticket
|
||||
from config.emailConf import sendEmail
|
||||
from config.pushbearConf import sendPushBear
|
||||
from myException.ticketIsExitsException import ticketIsExitsException
|
||||
from myException.ticketNumOutException import ticketNumOutException
|
||||
|
||||
|
@ -42,6 +43,8 @@ class queryOrderWaitTime:
|
|||
if data and data.get("orderId", ""):
|
||||
sendEmail(ticket.WAIT_ORDER_SUCCESS.format(
|
||||
data.get("orderId", "")))
|
||||
sendPushBear(ticket.WAIT_ORDER_SUCCESS.format(
|
||||
data.get("orderId", "")))
|
||||
raise ticketIsExitsException(ticket.WAIT_ORDER_SUCCESS.format(
|
||||
data.get("orderId")))
|
||||
elif data.get("msg", False):
|
||||
|
|
|
@ -19,7 +19,10 @@ class submitOrderRequest:
|
|||
def __init__(self, session, secretStr, from_station, to_station, train_no, set_type,
|
||||
passengerTicketStrList, oldPassengerStr, train_date, ticke_peoples):
|
||||
self.session = session
|
||||
self.secretStr = secretStr
|
||||
try:
|
||||
self.secretStr = urllib.unquote(secretStr)
|
||||
except AttributeError:
|
||||
self.secretStr = urllib.parse.unquote(secretStr)
|
||||
self.from_station = from_station
|
||||
self.to_station = to_station
|
||||
self.to_station = to_station
|
||||
|
@ -34,7 +37,7 @@ class submitOrderRequest:
|
|||
"""
|
||||
:return:
|
||||
"""
|
||||
data = [('secretStr', urllib.unquote(self.secretStr)), # 字符串加密
|
||||
data = [('secretStr', self.secretStr), # 字符串加密
|
||||
('train_date', self.train_date), # 出发时间
|
||||
('back_train_date', time()), # 返程时间
|
||||
('tour_flag', 'dc'), # 旅途类型
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 1.5 KiB |
Loading…
Reference in New Issue