def saveCardBusinessCard(jsCardBusinessCard, side, sideID=''): '''Save side businesscard info to a file, update index ''' pseudoID = utils.getSidePseudoID(side) fname = saveResults2File(jsCardBusinessCard, pseudoID, 'card', 'businesscard') updateIndexForBusinessCard(pseudoID, fname, jsCardBusinessCard, sideID)
def saveCardAccountingStat(jsCardAccountingStat, side): '''Save side accountingstat info to a file, update index ''' SideId = utils.getSidePseudoID(side) fname = saveResults2File(jsCardAccountingStat, SideId, 'card', 'accountingstat') updateIndexForAccountingStatCard(SideId, fname, jsCardAccountingStat)
def saveCardExcerpt(res, side): '''Save side doc (выписка из ЕГРЮЛ) to file, update index res: requests.Responce object with binary data ''' SideId = utils.getSidePseudoID(side) fname = saveResults2File(res, SideId, 'card', 'excerpt', 'pdf') updateIndexForCardExcerpt(SideId, fname, None)
def saveCardExcerpt(res, side): """Save side doc (выписка из ЕГРЮЛ) to file, update index res: requests.Responce object with binary data """ SideId = utils.getSidePseudoID(side) fname = saveResults2File(res, SideId, "card", "excerpt", "pdf") updateIndexForCardExcerpt(SideId, fname, None)
def saveCalendarPeriod(jsRes, side): '''Save side Calendar/Period info to a file, update index :param casebook.messages.JsonResponce jsRes: text to save :param dict side: side data from casebook.messages.JsonResponce ''' sid = utils.getSidePseudoID(side) fname = saveResults2File(jsRes, sid, 'calendar', 'period') updateIndexForCalendarPeriod(sid, fname, jsRes)
def saveSearchCases4Side(jsRes, side): '''Save side Search/Cases info to a file, update index :param casebook.messages.JsonResponce jsRes: text to save :param dict side: side data from casebook.messages.JsonResponce ''' sid = utils.getSidePseudoID(side) fname = saveResults2File(jsRes, sid, 'search', 'cases4side') updateIndexForSearchCases4Side(sid, fname, jsRes)
def saveCalendarPeriod(jsRes, side): """Save side Calendar/Period info to a file, update index :param casebook.messages.JsonResponce jsRes: text to save :param dict side: side data from casebook.messages.JsonResponce """ sid = utils.getSidePseudoID(side) fname = saveResults2File(jsRes, sid, "calendar", "period") updateIndexForCalendarPeriod(sid, fname, jsRes)
def saveSearchCases4Side(jsRes, side): """Save side Search/Cases info to a file, update index :param casebook.messages.JsonResponce jsRes: text to save :param dict side: side data from casebook.messages.JsonResponce """ sid = utils.getSidePseudoID(side) fname = saveResults2File(jsRes, sid, "search", "cases4side") updateIndexForSearchCases4Side(sid, fname, jsRes)
def collectSideData(session, side, deep=2): '''Collect all information for given side Sequence: card.accountingstat card.excerpt search.sidesdetailsex calendar.period card.bankruptcard case info for each case mentioned card.businesscard side info for each side mentioned search.cases2 case info for each: todo? search.casesgj case info for each: todo? URLs: GET http://casebook.ru/api/Card/Excerpt GET http://casebook.ru/api/Search/SidesDetailsEx POST http://casebook.ru/api/Card/AccountingStat POST http://casebook.ru/api/Calendar/Period POST http://casebook.ru/api/Card/BankruptCard POST http://casebook.ru/api/Card/BusinessCard POST http://casebook.ru/api/Search/Cases POST http://casebook.ru/api/Search/CasesGj :param casebook.http.HttpSession session: HTTP session wrapper :param dict side: side data from casebook.messages.JsonResponce :param bool deep: recursion limit ''' if deep <= 0: print u"collectSideData, end of recursion" return ShortName = sideShortName(side) sid = utils.getSidePseudoID(side) print "collectSideData, side short name: %s" % ShortName # check if we already get this side today if sideDataIsFresh(sid): print "collectSideData, side data downloaded already, nothing to do" return #~ отчетность POST http://casebook.ru/api/Card/AccountingStat #~ payload {"Organization":{"Address": ... __ = cardAccountingStat(session, side) #~ выписка из ЕГРЮЛ #~ GET http://casebook.ru/api/Card/Excerpt?Address= ... cardExcerpt(session, side) # доп.сведения # GET http://casebook.ru/api/Search/SidesDetailsEx?index=1&inn=1106014140&okpo=3314561 __ = searchSidesDetailsEx(session, side) # расписание событий POST http://casebook.ru/api/Calendar/Period # payload {...,"Sides":[{"Name":"ДИРЕКЦИЯ __ = calendarPeriod(session, side) # что-то про банкротство, внутри тянет case info for each case mentioned # POST http://casebook.ru/api/Card/BankruptCard # payload {"Address":"169300, РЕСПУБЛИКА КОМИ...","Inn":"1106014140","Name":"ДИРЕКЦИЯ ...","Ogrn":"1021100895760","Okpo":"3314561","IsUnique":false,"OrganizationId":""} jsCardBankruptCard = cardBankruptCard(session, side) #~ карточка участника POST http://casebook.ru/api/Card/BusinessCard jsCardBusinessCard = cardBusinessCard(session, side) # поиск дел с участием стороны # POST http://casebook.ru/api/Search/Cases # payload {"StatusEx":[],"SideTypes":[],"ConsiderType":-1,"CourtType":-1,"CaseNumber":null,"CaseCategoryId":"","MonitoredStatus":-1,"Courts":[],"Instances":[],"Judges":[],"Delegate":"","StateOrganizations":[],"DateFrom":null,"DateTo":null,"SessionFrom":null,"SessionTo":null,"FinalDocFrom":null,"FinalDocTo":null,"MinSum":0,"MaxSum":-1,"Sides":[{"Name":"ДИРЕКЦИЯ ...","ShortName":"ТПП ...","Inn":"1106014140","Ogrn":"1021100895760","Okpo":"3314561","Address":"169300, РЕСП...","IsUnique":false,"IsOriginal":true,"IsBranch":true},{"Name":"ДИР...","ShortName":"ТПП ...","Inn":"1106014140","Ogrn":"1021100895760","Okpo":"3314561","IsUnique":false,"OrganizationId":0,"Address":"169300, РЕСП...","IsBranch":true}],"CoSides":[],"Accuracy":0,"Page":1,"Count":30,"OrderBy":"incoming_date_ts desc","JudgesNames":[]} __ = searchCases4Side(session, side) # поиск дел общей юрисдикции # POST http://casebook.ru/api/Search/CasesGj # payload {"CoSides":[],"Count":30,"DateFrom":null,"DateTo":null,"OrderBy":"incoming_date_ts desc","Page":1,"Sides":[{"Name":"ДИРЕКЦИЯ...","ShortName":"ТПП ...","Inn":"1106014140","Ogrn":"1021100895760","Okpo":"3314561","Address":"169300, РЕСП...","IsUnique":false,"IsOriginal":true,"IsBranch":true},{"Name":"ДИРЕКЦИЯ ...","ShortName":"ТПП ...","Inn":"1106014140","Ogrn":"1021100895760","Okpo":"3314561","IsUnique":false,"OrganizationId":0,"Address":"169300, РЕСП...","IsBranch":true}],"CaseTypeId":"","Courts":[]} __ = searchCasesGj4Side(session, side) stor.commit('sides', sid) bankruptCases = getCasesFromBancruptCard(jsCardBankruptCard) print "collectSideData, num of cases in bankruptCard: %s" % len(bankruptCases) for x in bankruptCases: case = utils.replaceNone(x) case[u"CaseId"] = case.get(u'Id', u'') print u"collectSideData, cardBankruptCard, goto case: %s" % case.get(u'Number', u'') # complex method, recursion collectCaseData(session, case, deep-1) businessSides = getSidesFromBusinessCard(jsCardBusinessCard) print "collectSideData, num of sides in businessCard: %s" % len(businessSides) for x in businessSides: bside = utils.replaceNone(x) print u"collectSideData, cardBusinessCard, goto side: %s" % sideShortName(bside) # complex method, get data recursively try: collectSideData(session, bside, deep-1) except casebook.RequestError: print u"collectSideData, cardBusinessCard, error while processing current side"
def collectSideData(session, side, deep=2): '''Collect all information for given side Sequence: card.accountingstat card.excerpt search.sidesdetailsex calendar.period card.bankruptcard case info for each case mentioned card.businesscard side info for each side mentioned search.cases2 case info for each: todo? search.casesgj case info for each: todo? URLs: GET http://casebook.ru/api/Card/Excerpt GET http://casebook.ru/api/Search/SidesDetailsEx POST http://casebook.ru/api/Card/AccountingStat POST http://casebook.ru/api/Calendar/Period POST http://casebook.ru/api/Card/BankruptCard POST http://casebook.ru/api/Card/BusinessCard POST http://casebook.ru/api/Search/Cases POST http://casebook.ru/api/Search/CasesGj :param casebook.http.HttpSession session: HTTP session wrapper :param dict side: side data from casebook.messages.JsonResponce :param bool deep: recursion limit ''' if deep <= 0: print u"collectSideData, end of recursion" return ShortName = sideShortName(side) sid = utils.getSidePseudoID(side) print "collectSideData, side short name: %s" % ShortName # check if we already get this side today if sideDataIsFresh(sid): print "collectSideData, side data downloaded already, nothing to do" return #~ отчетность POST http://casebook.ru/api/Card/AccountingStat #~ payload {"Organization":{"Address": ... __ = cardAccountingStat(session, side) #~ выписка из ЕГРЮЛ #~ GET http://casebook.ru/api/Card/Excerpt?Address= ... cardExcerpt(session, side) # доп.сведения # GET http://casebook.ru/api/Search/SidesDetailsEx?index=1&inn=1106014140&okpo=3314561 __ = searchSidesDetailsEx(session, side) # расписание событий POST http://casebook.ru/api/Calendar/Period # payload {...,"Sides":[{"Name":"ДИРЕКЦИЯ __ = calendarPeriod(session, side) # что-то про банкротство, внутри тянет case info for each case mentioned # POST http://casebook.ru/api/Card/BankruptCard # payload {"Address":"169300, РЕСПУБЛИКА КОМИ...","Inn":"1106014140","Name":"ДИРЕКЦИЯ ...","Ogrn":"1021100895760","Okpo":"3314561","IsUnique":false,"OrganizationId":""} jsCardBankruptCard = cardBankruptCard(session, side) #~ карточка участника POST http://casebook.ru/api/Card/BusinessCard jsCardBusinessCard = cardBusinessCard(session, side) # поиск дел с участием стороны # POST http://casebook.ru/api/Search/Cases # payload {"StatusEx":[],"SideTypes":[],"ConsiderType":-1,"CourtType":-1,"CaseNumber":null,"CaseCategoryId":"","MonitoredStatus":-1,"Courts":[],"Instances":[],"Judges":[],"Delegate":"","StateOrganizations":[],"DateFrom":null,"DateTo":null,"SessionFrom":null,"SessionTo":null,"FinalDocFrom":null,"FinalDocTo":null,"MinSum":0,"MaxSum":-1,"Sides":[{"Name":"ДИРЕКЦИЯ ...","ShortName":"ТПП ...","Inn":"1106014140","Ogrn":"1021100895760","Okpo":"3314561","Address":"169300, РЕСП...","IsUnique":false,"IsOriginal":true,"IsBranch":true},{"Name":"ДИР...","ShortName":"ТПП ...","Inn":"1106014140","Ogrn":"1021100895760","Okpo":"3314561","IsUnique":false,"OrganizationId":0,"Address":"169300, РЕСП...","IsBranch":true}],"CoSides":[],"Accuracy":0,"Page":1,"Count":30,"OrderBy":"incoming_date_ts desc","JudgesNames":[]} __ = searchCases4Side(session, side) # поиск дел общей юрисдикции # POST http://casebook.ru/api/Search/CasesGj # payload {"CoSides":[],"Count":30,"DateFrom":null,"DateTo":null,"OrderBy":"incoming_date_ts desc","Page":1,"Sides":[{"Name":"ДИРЕКЦИЯ...","ShortName":"ТПП ...","Inn":"1106014140","Ogrn":"1021100895760","Okpo":"3314561","Address":"169300, РЕСП...","IsUnique":false,"IsOriginal":true,"IsBranch":true},{"Name":"ДИРЕКЦИЯ ...","ShortName":"ТПП ...","Inn":"1106014140","Ogrn":"1021100895760","Okpo":"3314561","IsUnique":false,"OrganizationId":0,"Address":"169300, РЕСП...","IsBranch":true}],"CaseTypeId":"","Courts":[]} __ = searchCasesGj4Side(session, side) stor.commit('sides', sid) bankruptCases = getCasesFromBancruptCard(jsCardBankruptCard) print "collectSideData, num of cases in bankruptCard: %s" % len( bankruptCases) for x in bankruptCases: case = utils.replaceNone(x) case[u"CaseId"] = case.get(u'Id', u'') print u"collectSideData, cardBankruptCard, goto case: %s" % case.get( u'Number', u'') # complex method, recursion collectCaseData(session, case, deep - 1)
def saveSearchSidesDetailsEx(jsRes, side): '''Save side Search/SidesDetailsEx info to a file, update index ''' sid = utils.getSidePseudoID(side) fname = saveResults2File(jsRes, sid, 'search', 'sidesdetailsex') updateIndexForSidesDetailsEx(sid, fname, jsRes)
def saveCardBusinessCard(jsCardBusinessCard, side, sideID=""): """Save side businesscard info to a file, update index """ pseudoID = utils.getSidePseudoID(side) fname = saveResults2File(jsCardBusinessCard, pseudoID, "card", "businesscard") updateIndexForBusinessCard(pseudoID, fname, jsCardBusinessCard, sideID)
def saveCardAccountingStat(jsCardAccountingStat, side): """Save side accountingstat info to a file, update index """ SideId = utils.getSidePseudoID(side) fname = saveResults2File(jsCardAccountingStat, SideId, "card", "accountingstat") updateIndexForAccountingStatCard(SideId, fname, jsCardAccountingStat)
def saveSearchSidesDetailsEx(jsRes, side): """Save side Search/SidesDetailsEx info to a file, update index """ sid = utils.getSidePseudoID(side) fname = saveResults2File(jsRes, sid, "search", "sidesdetailsex") updateIndexForSidesDetailsEx(sid, fname, jsRes)