def collect_all_apps():
    urlGen = UrlGen()
    allCategories = urlGen.get_test_categories()
    appsList = parseapp.parse_all_apps(allCategories, None)
    cc = 0
    for i in appsList:
        i.package = utils.get_package(i.link)

        app = db.search_partappinfo(i.package)
        dev = db.search_developer(i.company, i.package)
        cc = cc + 1

        if dev is None:  #maybe this package is not relative with dev.
            pass
        else:
            db.update_devinfo(dev.company, utils.getdate(), dev.status,
                              i.package, i.company, i.company_link)
            #print i.package

        if app is None:
            db.write_appinfo(i.rank, i.title, i.package,
                             i.link, i.company, i.company_link, i.desc,
                             utils.getdate(), i.category, i.icon, i.icon_small)
        else:
            i.date = utils.getdate()
            db.check_append_appchangelog_info(i, app)
            db.update_appinfo(i.rank, i.title, i.package,
                              i.link, i.company, i.company_link, i.desc,
                              utils.getdate(), i.category, i.icon,
                              i.icon_small)

    return appsList
示例#2
0
def save_app_to_list(appslist):
    cc = 0
    date = utils.getdate()
    #if len(appslist) > 0:
    #    print appslist[0].category
    for i in appslist:
        i.package = utils.get_package(i.link)

        app = db.search_partappinfo(i.package)
        dev = db.search_developer(i.company, i.package)
        cc += 1
        if dev is None:  #maybe this package is not relative with dev.
            pass
        else:
            db.update_devinfo(dev.company, date, dev.status, i.package,
                              i.company, i.company_link)
            #if dev is not None and cmp(dev.date, date) != 0:
            #    print "update dev:", i.company, i.company_link, dev.date, date

        if app is None:
            db.write_appinfo(i.rank, i.title, i.package,
                             i.link, i.company, i.company_link, i.desc,
                             utils.getdate(), i.category, i.icon, i.icon_small)
        else:
            i.date = date
            db.check_append_appchangelog_info(i, app)
            db.update_appinfo(i.rank, i.title, i.package,
                              i.link, i.company, i.company_link, i.desc,
                              utils.getdate(), i.category, i.icon,
                              i.icon_small)
示例#3
0
def update_app_developer():
    index = 0
    date = utils.getdate()
    devsList = db.get_specail_devslist(date)
    print "update_app_developer dev len=", devsList.__len__()
    for dev in devsList:
        app = db.search_appinfo(dev.package)
        if app is not None:
            db.update_devinfo(dev.company, utils.getdate(), dev.status,
                              app.package, app.company, app.company_link)
            if cmp(dev.company, app.company) != 0:
                print "update dev:", index, dev.company, app.package
            index += 1
示例#4
0
 def _gen_resultado_estudio(self, estudio_clinico_resultado):
     return OKW.K_RESULTADO_ESTUDIO(
         FE_REALIZACION=getdate(),
         DS_DESCRIPCION='DS_DESCRIPCION %d' % self._icount,
         DS_ORIGEN='DS_ORIGEN %d' % self._icount,
         K_ESTUDIO_CLINICO_RESULTADO = estudio_clinico_resultado,
         )
示例#5
0
 def _clona_nota(self, nota):
     nueva = self._set_defaults(clona(nota), False)
     nueva.FL_DETALLE_EXPEDIENTE = 0
     nueva.FL_USUARIO = nota.FL_USUARIO
     nueva.CL_USUARIO = nota.CL_USUARIO
     nueva.UI_EXPEDIENTE = Guid.NewGuid()
     nueva.FE_CAPTURA = getdate().AddMinutes(self._icount)
     return nueva
def check_apps_suspend():
    appsList = db.get_specail_old_appslist(utils.getdate())
    index = 0
    print "check_apps_suspend app old len=", len(appsList)
    for app in appsList:
        if app.title.find(const._SUSPEND) == -1:
            status = utils.get_httpstatuscode(app.link.strip('\n'))
            if status != 200:
                print("title:%s %s suspend!" % (app.title, app.link))
                if app.title.find(const._SUSPEND) == -1:
                    app.title = const._SUSPEND + "[" + utils.getdate(
                    ) + "]" + app.title
                    db.update_apptitle(app.title, app.package)
                db.update_appdate(utils.getdate(), app.package)
            else:
                db.update_appdate(utils.getdate(), app.package)
                #print ("index = %d %s status:%d" % (index, app.title, status))
        index = index + 1
def check_app_developer_suspend():
    index = 0
    date = utils.getdate()
    yesterday = utils.get_yesterday_date()
    #date='2018-11'
    devsList = db.get_specail_devslist_ex(date, yesterday)
    print "check_app_developer_suspend dev len=", devsList.__len__()
    for dev in devsList:
        if cmp(dev.date, date) != 0 and cmp(dev.status, const.OK_STATUS) == 0:
            #if dev.status != SUSPEND_STATUS:

            req = utils.get_httpstatus_request(dev.company_link.strip('\n'))
            if req.content is not None:
                error = req.content.find(
                    'We\'re sorry, the requested URL was not found on this server.'
                )
                if error == -1:
                    dev_status = const.OK_STATUS
                    #print ("index = %d %s status:%s" % (index, dev.company, dev_status))
                else:
                    dev_status = const.SUSPEND_STATUS
                    print("dev:%s %s suspend!" %
                          (dev.company, dev.company_link))
                    appsList = db.get_specail_appslist_bydev(dev.company)
                    for app in appsList:
                        if app.title.find(const._SUSPEND) == -1:
                            app.title = const._SUSPEND + "[" + utils.getdate(
                            ) + "]" + app.title
                            db.update_apptitle(app.title, app.package)
                            print("\t [dead now]title:%s %s suspend!" %
                                  (app.title, app.link))
                        else:
                            print("\t [dead ago]title:%s %s suspend!" %
                                  (app.title, app.link))

            elif req.status_code == 404:
                dev_status = const.SUSPEND_STATUS

            db.update_devinfo_simple(dev.company, utils.getdate(), dev_status,
                                     dev.package)
            index = index + 1
示例#8
0
 def _gen_diagnostico(self, diag):
     return OKW.K_DIAGNOSTICO_PACIENTE(
         FL_DIAGNOSTICO=diag,
         FL_SEVERIDAD_DIAGNOSTICO=1,
         FL_ESTATUS_DIAGNOSTICO=2,
         FE_DIAGNOSTICO=getdate(),
         FL_PACIENTE_CITA=0,
         FG_ACCION_QX=False,
         FG_ACCION_INCAPACIDAD=False,
         FG_ACCION_REFERENCIA=False,
         FG_ACCION_CONTRARREFERENCIA=False,
         FG_REPLICADO=False,
         )
示例#9
0
def write_app(row):
    global cc
    i = AppDetail()
    i.rank = row[0]
    i.title = row[1]
    i.link = row[2]
    i.package = row[3]
    i.company = row[4]
    i.company_link = row[5]
    i.desc = row[6]
    i.date = row[7]
    i.category = row[8]
    i.icon = row[9]
    i.icon_small = row[10]

    date = utils.getdate()
    app = db.search_partappinfo(i.package)
    dev = db.search_developer(i.company, i.package)
    cc += 1
    if dev is None:  #maybe this package is not relative with dev.
        pass
    else:
        db.update_devinfo(dev.company, date, dev.status, i.package, i.company,
                          i.company_link)

    if app is None:
        db.write_appinfo(i.rank, i.title, i.package,
                         i.link, i.company, i.company_link, i.desc,
                         utils.getdate(), i.category, i.icon, i.icon_small)
    '''
    else:
        db.check_append_appchangelog_info(i, app)
        db.update_appinfo(i.rank, i.title, i.package,
                          i.link, i.company, i.company_link,
                          i.desc, utils.getdate(), i.category,
                          i.icon, i.icon_small)
    '''

    print "write app:", cc, i.title, i.package
示例#10
0
def check_new_developer():
    index = 0
    date = utils.getdate()
    appsList = db.get_specail_new_appslist(date)
    print "check_new_developer app new len=", len(appsList)
    for app in appsList:
        dev = db.search_developer(app.company, app.package)
        needupdate = 0
        if dev is None:
            dev = db.search_developer_pkg(app.package)
            if dev is None:
                db.write_developer(app.company, app.company_link, date,
                                   app.package)
                print "insert:", index, app.company, app.company_link, app.package
                needupdate += 1
        if needupdate == 0:
            db.update_devinfo(dev.company, utils.getdate(), dev.status,
                              app.package, app.company, app.company_link)
            #print dev.company, app.package
            pass

        index = index + 1
示例#11
0
    def _gen_medicacion(self):

        # Evitamos el límite de 13 argumentos x función en ipy

        m = OKW.K_MEDICACION()
        m.FL_PRESENTACION               = 379
        m.NO_CANTIDAD                   = 1
        m.NO_FRECUENCIA                 = 24
        m.NO_DURACION                   = 60
        m.DS_OBSERVACIONES              = 'DS_OBSERVACIONES %d' % self._icount
        m.FG_SUSPENDIDO                 = False
        m.FE_INICIAR                    = getdate()
        m.FG_HOSPITALIZADO              = False
        m.FG_FUERA_CUADRO               = False
        m.FG_DOSIS                      = False
        m.FL_USUARIO                    = self.fl_usuario
        m.FL_UNIDAD_TIEMPO_FRECUENCIA   = 4
        m.FL_UNIDAD_TIEMPO_DURACION     = 2
        m.FG_CONTRAREFERENCIA           = False
        m.FE_HASTA                      = getdate().AddDays(60)
        m.FG_POST_HOSPITALARIA          = False
        return m
示例#12
0
    def _set_defaults(self, entidad, with_fl_paciente=True):
        now = getdate()
        defaults = dict(
            FE_CREACION=now,
            FE_ULTMOD=now,
            FL_PACIENTE=self.fl_paciente,
            FL_USUARIO=self.fl_usuario,
            CL_USUARIO=self.cl_login,
            NB_PROGRAMA=_PROGRAMA,
            FG_REPLICADO=False,
            FE_SYNC_EXPEDIENTE=_FE_SYNC_DEFAULT,
            )

        for (p, v) in defaults.iteritems():
            if p == 'FL_PACIENTE' and with_fl_paciente == False:
                continue
            safe_set_prop(entidad, p, v)

        return entidad
示例#13
0
def write_app_changelog(row):
    global cc
    i = AppDetail()
    i.rank = row[0]
    i.title = row[1]
    #i.link = row[2]
    i.package = row[2]
    i.company = row[3]
    i.desc = row[4]
    i.date = row[5]
    i.category = row[6]

    cc += 1
    date = utils.getdate()
    app = db.search_partappinfo(i.package)
    if app is not None and cc == 1:
        i.link = app.link
        i.company_link = app.company_link
        if i.title.find("new!!") != -1 or i.company.find(
                "new!!") != -1 or i.desc.find("new!!") != -1:
            db.write_appchangelogInfo_ex(i)
            print "update appchangelog :", cc, i.title, i.package, i.company, i.desc
示例#14
0
def force_check_suspended_developer():
    index = 0
    date = utils.getdate()
    devsList = db.get_specail_devslist("xxxx")
    print "force_check_suspended_developer dev len=", devsList.__len__()
    for dev in devsList:
        if dev.status == const.SUSPEND_STATUS:
            req = utils.get_httpstatus_request(dev.company_link.strip('\n'))
            if req.content is not None:
                error = req.content.find(
                    'We\'re sorry, the requested URL was not found on this server.'
                )
                #print("dev:%s %s %s, %s, suspend!" % (dev.company, dev.company_link, error, req.content.__len__()))
                if error == -1:
                    dev_status = const.OK_STATUS
                    print("index = %d %s status:%s" %
                          (index, dev.company, dev_status))
                else:
                    dev_status = const.SUSPEND_STATUS
            elif req.status_code == 404:
                dev_status = const.SUSPEND_STATUS
            #db.update_devinfo_simple(dev.company, utils.getdate(), dev_status, dev.package)
            index = index + 1
示例#15
0
    devsList = db.get_specail_devslist(date)
    print "update_app_developer dev len=", devsList.__len__()
    for dev in devsList:
        app = db.search_appinfo(dev.package)
        if app is not None:
            db.update_devinfo(dev.company, utils.getdate(), dev.status,
                              app.package, app.company, app.company_link)
            if cmp(dev.company, app.company) != 0:
                print "update dev:", index, dev.company, app.package
            index += 1


def update_app_developer_fast():
    index = 0
    devsDict = db.search_not_same_dev()
    print "update_app_developer_fast dev len=", devsDict.__len__()
    for key, value in devsDict.items():
        dev = value
        db.update_devinfo_link(dev, key)
        print "update dev:", index, dev.company, dev.package
        index += 1


print "update_app_developer_fast:", utils.getdate()
update_app_developer_fast()
#print "rescan_developers:", utils.getdate()
#suspend_developer_rescan.rescan_developers()

#update_app_developer() #we should update developer first, becase developer maybe changed.
#check_new_developer()
示例#16
0
def load_data(folderpath):
    """
    Open CSV files in a folder and index the data.
    """
    files = os.listdir(folderpath)

    for f in files:

        fullname = folderpath + f
        if os.path.isfile(fullname):
            with open(fullname, 'rb') as csvfile:

                eventsreader = csv.reader(csvfile,
                                          delimiter=',',
                                          quotechar='"')
                for line, row in enumerate(eventsreader):
                    if line == 0:
                        for column in range(0, len(row)):
                            if row[column] == "TimeCreated":
                                TIME_IDX = column
                            elif row[column] == "Id":
                                ID_IDX = column
                            elif row[column] == "MachineName":
                                MACHINENAME_IDX = column
                            elif row[column] == "TargetUserName":
                                TARGETUSERNAME_IDX = column
                            elif row[column] == "SubjectUserName":
                                SUBJECTUSERNAME_IDX = column
                            elif row[column] == "LogonType":
                                LOGONTYPE_IDX = column
                            elif row[column] == "ProcessName":
                                PROCESSNAME_IDX = column
                            elif row[column] == "IpAddress":
                                IP_IDX = column
                            elif row[column] == "WorkstationName":
                                WORKSTATIONAME_IDX = column
                            elif row[column] == "ServiceName":
                                SERVICENAME_IDX = column
                            elif row[column] == "ImagePath":
                                IMAGEPATH_IDX = column
                            elif row[column] == "ServiceType":
                                SERVICETYPE_IDX = column
                            elif row[column] == "Status":
                                STATUS_IDX = column
                            elif row[column] == "SubStatus":
                                SUBSTATUS_IDX = column
                            elif row[column] == "TaskName":
                                TASKNAME_IDX = column
                            elif row[column] == "TaskContent":
                                TASKCONTENT_IDX = column
                            elif row[column] == "Message":
                                MESSAGGE_IDX = column
                            elif row[column] == "ShareName":
                                SHARENAME_IDX = column
                            elif row[column] == "PrivilegeList":
                                PRIVILEGE_IDX = column

                    print "reading ", f, " line:", line
                    #4624 Authentication event
                    if row[ID_IDX] == "4624":
                        strtime = row[TIME_IDX]
                        time = getdate(strtime)

                        hostname = row[MACHINENAME_IDX]
                        username = row[TARGETUSERNAME_IDX].lower()
                        logontype = getlogontype(str(row[LOGONTYPE_IDX]))
                        processname = row[PROCESSNAME_IDX]
                        sourceip = row[IP_IDX]
                        sourcehost = row[WORKSTATIONAME_IDX]

                        host, created_host = Host.objects.get_or_create(
                            hostname=hostname)
                        user, created_user = User.objects.get_or_create(
                            username=username)

                        if (logontype == "Network"
                                or logontype == "RemoteInteractive") and (
                                    sourceip != "-" and ":" not in sourceip):
                            source, created_source = SourceIp.objects.get_or_create(
                                sourceip=sourceip, hostname=sourcehost)
                            event4624, createdevent = Event_4624.objects.get_or_create(
                                time=time,
                                host=host,
                                user=user,
                                logontype=logontype,
                                processname=processname,
                                sourcehost=sourcehost,
                                sourceip=source)
                        else:
                            try:
                                event4624, createdevent = Event_4624.objects.get_or_create(
                                    time=time,
                                    host=host,
                                    user=user,
                                    logontype=logontype,
                                    processname=processname,
                                    sourcehost=sourcehost)
                            except:
                                pass
                        if createdevent:
                            print "new 4624 created for host " + hostname

                    # 4625 Authentication event
                    if row[ID_IDX] == "4625":
                        strtime = row[TIME_IDX]
                        time = getdate(strtime)
                        hostname = row[MACHINENAME_IDX]
                        username = row[TARGETUSERNAME_IDX].lower()
                        logontype = getlogontype(str(row[LOGONTYPE_IDX]))
                        processname = row[PROCESSNAME_IDX]
                        sourceip = row[IP_IDX]
                        sourcehost = row[WORKSTATIONAME_IDX]
                        status = row[STATUS_IDX]
                        substatus = row[SUBSTATUS_IDX]

                        host, created_host = Host.objects.get_or_create(
                            hostname=hostname)
                        user, created_user = User.objects.get_or_create(
                            username=username)

                        #new
                        if (logontype == "Network"
                                or logontype == "RemoteInteractive") and (
                                    sourceip != "-" and ":" not in sourceip):
                            source, created_source = SourceIp.objects.get_or_create(
                                sourceip=sourceip, hostname=sourcehost)
                            event4625, createdevent = Event_4625.objects.get_or_create(
                                time=time,
                                host=host,
                                user=user,
                                logontype=logontype,
                                processname=processname,
                                sourcehost=sourcehost,
                                sourceip=source,
                                status=status,
                                substatus=substatus)
                        else:
                            event4625, createdevent = Event_4625.objects.get_or_create(
                                time=time,
                                host=host,
                                user=user,
                                logontype=logontype,
                                processname=processname,
                                sourcehost=sourcehost,
                                status=status,
                                substatus=substatus)

                        if createdevent:
                            print "new 4625 created for host " + hostname

                    # 4776 Local Authentication Event
                    if row[ID_IDX] == "4776":
                        strtime = row[TIME_IDX]
                        time = getdate(strtime)

                        hostname = row[MACHINENAME_IDX]
                        username = row[TARGETUSERNAME_IDX].lower()
                        status = row[STATUS_IDX]

                        host, created_host = Host.objects.get_or_create(
                            hostname=hostname)
                        user, created_user = User.objects.get_or_create(
                            username=username)

                        event4776, createdevent = Event_4776.objects.get_or_create(
                            time=time, host=host, user=user, status=status)
                        if createdevent:
                            print "new 4776 created for host " + hostname

                    # 5140 File Share Event
                    if row[ID_IDX] == "5140":
                        strtime = row[TIME_IDX]
                        time = getdate(strtime)

                        hostname = row[MACHINENAME_IDX]
                        username = row[SUBJECTUSERNAME_IDX].lower()
                        sharename = row[SHARENAME_IDX]

                        host, created_host = Host.objects.get_or_create(
                            hostname=hostname)
                        user, created_user = User.objects.get_or_create(
                            username=username)

                        event5140, createdevent = Event_5140.objects.get_or_create(
                            time=time,
                            host=host,
                            user=user,
                            sharename=sharename)
                        if createdevent:
                            print "new 5140 created for host " + hostname

                    # 4672 Privileged Auth
                    if row[ID_IDX] == "4672":
                        strtime = row[TIME_IDX]
                        time = getdate(strtime)

                        hostname = row[MACHINENAME_IDX]
                        username = row[SUBJECTUSERNAME_IDX].lower()
                        privilegelist = row[PRIVILEGE_IDX]

                        host, created_host = Host.objects.get_or_create(
                            hostname=hostname)
                        user, created_user = User.objects.get_or_create(
                            username=username)

                        event4672, createdevent = Event_4672.objects.get_or_create(
                            time=time,
                            host=host,
                            user=user,
                            privilegelist=privilegelist)
                        if createdevent:
                            print "new 4672 created for host " + hostname

                    # 7045 New Service created event
                    elif row[ID_IDX] == "7045":

                        strtime = row[TIME_IDX]
                        time = getdate(strtime)
                        hostname = row[MACHINENAME_IDX]
                        servicename = row[SERVICENAME_IDX]
                        imagepath = row[IMAGEPATH_IDX]
                        servicetype = row[SERVICETYPE_IDX]

                        service, service_created = Service.objects.get_or_create(
                            servicename=servicename,
                            imagepath=imagepath,
                            servicetype=servicetype)
                        host, created_host = Host.objects.get_or_create(
                            hostname=hostname)
                        event7045, createdevent = Event_7045.objects.get_or_create(
                            time=time, host=host, service=service)
                        if createdevent:
                            print "new 7045 created for " + hostname

                    # 4698 New Scheduled Task event
                    elif row[ID_IDX] == "4698":

                        strtime = row[TIME_IDX]
                        time = getdate(strtime)

                        hostname = row[MACHINENAME_IDX]
                        taskname = row[TASKNAME_IDX]
                        taskdetails = row[TASKCONTENT_IDX]
                        #arguments = re.findall('<Arguments>(.*?)</Arguments>', taskdetails, re.DOTALL)[0]
                        #cmdline = re.findall('<Command>(.*?)</Command>', taskdetails, re.DOTALL)[0]
                        try:
                            arguments = find_between(taskdetails,
                                                     "<Arguments>",
                                                     "</Arguments>")
                        except:
                            arguments = ""
                        try:
                            cmdline = find_between(taskdetails, "<Command>",
                                                   "</Command>")
                        except:
                            cmdline = ""
                        host, created_host = Host.objects.get_or_create(
                            hostname=hostname)
                        task, taskcreated = Task.objects.get_or_create(
                            taskname=taskname,
                            imagepath=cmdline,
                            arguments=arguments)
                        event4698, createdevent = Event_4698.objects.get_or_create(
                            time=time, host=host, task=task)
                        if createdevent:
                            print "new 4698 created for " + hostname

                    # WMI event
                    elif row[ID_IDX] == "2":

                        strtime = row[TIME_IDX]
                        time = getdate(strtime)

                        hostname = row[MACHINENAME_IDX]
                        wmidetails = row[MESSAGGE_IDX]
                        operationid = re.findall('GroupOperationId = (.*?);',
                                                 wmidetails, re.DOTALL)[0]
                        operation = re.findall('Operation = (.*?);',
                                               wmidetails, re.DOTALL)[0]
                        host, created_host = Host.objects.get_or_create(
                            hostname=hostname)
                        WmiEvent_2.objects.create(time=time,
                                                  host=host,
                                                  operationid=operationid,
                                                  operation=operation)
                        print "new Wmi Event 2 created for " + hostname
示例#17
0
 def _gen_somatometria(self):
     return SOMATOM.K_SOMATOMETRIA(
         FE_MEDICION=getdate(),
         OBSERVACIONES='OBSERVACIONES %d' % self._icount,
         )
示例#18
0
 def _update_registro(self, entidad):
     safe_set_prop(entidad, 'FE_ULTMOD', getdate())
     safe_set_prop(entidad, 'FG_REPLICADO', False)
示例#19
0
 def _clona_resultado(self, resultado):
     nueva = self._set_defaults(clona(resultado))
     nueva.UI_RESULTADO = Guid.NewGuid()
     nueva.FE_AGREGADO = getdate().AddMinutes(self._icount)
     return nueva
示例#20
0
 def _gen_evento_prescripcion(self):
     return OKW.K_EVENTO_PRESCRIPCION(
         DS_EVENTO='DS_EVENTO prueba %d' % self._icount,
         FE_PRESCRIPCION=getdate(),
         )