Змея / Говнокод #27070 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
  42. 42
  43. 43
  44. 44
  45. 45
  46. 46
  47. 47
  48. 48
  49. 49
  50. 50
  51. 51
  52. 52
  53. 53
  54. 54
  55. 55
  56. 56
  57. 57
  58. 58
  59. 59
  60. 60
  61. 61
  62. 62
  63. 63
  64. 64
  65. 65
  66. 66
  67. 67
  68. 68
  69. 69
def loadDevices(list_devices, db_name, db_user, db_host, db_password):
    """Загрузка устройств из базы данных"""
    psql = ClassPSQL(db_name, db_user, db_host, db_password, db_port)

    for group in psql.get("SELECT * FROM user_groups"):
        group_id, _, _, available_devices = group

        if (group_id != 0) and (available_devices != None):
            for device in parceDeviceStr(available_devices):
                if (findDevice(list_devices, int(device)) == None):
                    local_res= psql.get("SELECT * FROM device WHERE logic_id=" + str(device))

                    if len(local_res):
                        dev_id, _, port = local_res[0]
                        list_devices.append(ClassDevice(int(device), str(dev_id), int(port)))
                        findDevice(list_devices, int(device)).addGroupID(int(group_id))
                else:
                    findDevice(list_devices, int(device)).addGroupID(int(group_id))

    for device in psql.get("SELECT * FROM sm_devs"):
        dev_id, logic_id, port = device

        if (findDevice(list_devices, int(logic_id)) == None):
            list_devices.append(ClassDevice(int(logic_id), str(dev_id), int(port)))

    list_devices = sorted(list_devices, key=lambda device: device.getLogicID())

    return list_devices

------------------------------------------
class ClassGroupDevices(object):
 ... много методов  ...

    def save(self):
        """Сохранение группы устройств в postgres"""
        str_logic_ids = ""

        for logic_id in self.getLogicIDs():
            if (len(str_logic_ids) > 0):
                str_logic_ids += "," + str(logic_id)

            else:
                str_logic_ids = str(logic_id)

        if (self._psql.get("SELECT subgroup_id FROM us_dev_sgr WHERE (group_id='%s' and name='%s')" % (str(self.getGroupID()), self.getName()))):
            self._psql.set("UPDATE us_dev_sgr SET logic_ids='%s' WHERE (group_id='%s' and name='%s')"\
                % (str_logic_ids, str(self.getGroupID()), self.getName()))
        else:
            self._psql.set("INSERT INTO us_dev_sgr (group_id, name, logic_ids) VALUES ('%s', '%s', '%s')"\
                % (str(self.getGroupID()), self.getName(), str_logic_ids))

------------------------------------------
class ClassSchedule(object):
 ... много методов  ...

 def save(self, psql, list_devices:list, conf, timezone:int, schedule_id:int = 0):
        assert(isinstance(psql, ClassPSQL))
        assert(isinstance(list_devices, list))
        # assert(isinstance(conf, INIConfigLoader))
        assert(isinstance(timezone, int))
        assert(isinstance(schedule_id, int))

        for date in self._list_date:
            for logic_id in self._list_devices:
                local_device = findDevice(list_devices, logic_id)
                local_port, local_value = local_device.liquidity(self._action, conf, psql)
                date_time = datetime.datetime.strptime(date + " " + self._time, "%d.%m.%Y %H:%M") - datetime.timedelta(hours = timezone)
                psql.set("INSERT INTO device_exec_schedule (logicid, time, subgroup, port, value, group_id, answer) VALUES ('%s', '%s', '%s', '%s', '%s', '%s', '%s')" %
                                (str(logic_id), date_time, schedule_id, str(local_port), str(local_value), str(self._groups_id), "0"))

Была дана задача сишнику не знавшему Python написать сайт на Django за 4 дня. Знаете что? Он написал. (Названия таблиц в коде изменены, но смысл сохранён). Поддерживать код дали мне. А этот код из недр

Запостил: viktorokh96 viktorokh96, (Updated )

Комментарии (4) RSS

  • Настоящий сишник напишет сишные програмы на любом языке программирования.
    Ответить
    • Тем более в питухоне можно подключать модули на сях и, кажется, даже на сях-плю-плю.

      А говнокод в том, что сишник написал всё сам, хотя в джанге есть ОРМ? Ещё и на ошибки проверил, какой багор )))
      Ответить
      • Ну да, можно было подключить сишный модуль и написать всё на няшной. Но зачем тогда джанга и вообще питон? И без них норм.
        Ответить

Добавить комментарий

Я, guest, находясь в здравом уме и твердой памяти, торжественно заявляю:

    А не использовать ли нам bbcode?


    8