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

0

  1. 1
description = f"""У тебя , **{ctx.author}** вот столько балов!**{cursor.execute("SELECT cash FROM users WHERE id = {}".format(ctx.author.id)).fetchone()[0]} :polegar_para_cima:**"""

Насмотревшиеся Хауди Хо ботопейсатели - это, конечно, нечто.
1. Выполнение SQL-запроса вставлено прямо в шаблонизируемую строку
2. Сам запрос формируется через форматирование строки (привет, Бобби Тейблз!)
3. Не проверяется, вернула ли база хоть что-то.

"Не могу понять в чем проблема?" (с)

Vindicar Vindicar, (Updated )

Комментарии (48, +48)

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

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
#!/usr/bin/python
  
  import sys
  
  cache = {}
  
  def count(start, end):
      if start < end:
          if start not in cache:
              cache[start] = count(start + 1, end) + count(start * 2, end) + count(start ** 2, end)
          return cache[start]
      elif start == end:
          return 1
      else:
          return 0

  print(count(int(sys.argv[1]), int(sys.argv[2])))

Подсчитать количество путей из a в b с помощью прибавления единицы, умножения на 2 и возведения в квадрат

Чем формально ограничены возможности преобразовать рекурсию в хвостовую? Вот такое ведь не преобразовать?

vistefan vistefan, (Updated )

Комментарии (23, +23)

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

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
  70. 70
  71. 71
def export_to_csv(model, fields=None, related_models=[]):
    def export(request):
        meta = model._meta
        queryset = model.objects.all()
        
        if fields is not None:
            field_names = fields
        elif 'Shops' in related_models and 'Spots' in related_models:
            field_names = [field.name for field in Shops._meta.fields] +\
                [field.name for field in Spots._meta.fields]
        elif 'Products' in related_models and 'Spots' in related_models:
            field_names = [field.name for field in Products._meta.fields] +\
                [field.name for field in Spots._meta.fields]
        else:
            field_names = []
            for field in meta.fields:
                if not field.name in FORBIDDEN_FIELDS:
                    field_names.append(field.name)

        response = HttpResponse(content_type='text/csv')
        response['Content-Disposition'] = 'attachment; filename={}.csv'.format(meta)
        response.write(u'\ufeff'.encode('utf8'))

        writer = csv.writer(response, delimiter=',', lineterminator='\n', quoting=csv.QUOTE_ALL, dialect='excel')
        writer.writerow(field_names)

        if len(related_models) == 0:
            for obj in queryset:
                row = writer.writerow([getattr(obj, field) for field in field_names])

        elif 'Shops' in related_models and 'Spots' in related_models:
            shops_fields = [field.name for field in Shops._meta.fields]
            contact_fields = [field.name for field in Spots._meta.fields]

            for obj in queryset:
                row = []

                if obj.Shops is not None:
                    row += [getattr(obj.Shops, field) for field in shops_fields]
                else:
                    row += ['' for field in shops_fields]

                if obj.Contact is not None:
                    row += [getattr(obj.Contact, field) for field in contact_fields]
                else:
                    row += ['' for field in contact_fields]

                writer.writerow(row)
            
        elif 'Products' in related_models and 'Spots' in related_models:
            products_fields = [field.name for field in Products._meta.fields]
            contact_fields = [field.name for field in Spots._meta.fields]
            
            for obj in queryset:
                row = []
                
                if obj.Products is not None:
                    row += [getattr(obj.Products, field) for field in products_fields]
                else:
                    row += ['' for field in products_fields]

                if obj.Contact is not None:
                    row += [getattr(obj.Contact, field) for field in contact_fields]
                else:
                    row += ['' for field in contact_fields]
                
                writer.writerow(row)

        return response

    return export

В юности нагородила вот такую портянку для экспорта в csv связных между собой таблиц. Связка данных на уровне DAO-шки (в терминологии Джанго - Managers)? Пфф... Только инжект if-else с копипастой связки данных, только хардкор!

JaneBurt JaneBurt, (Updated )

Комментарии (331, +331)

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

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
class UserCreate(MethodView):
    """Data create."""

    def post(self):
        """Создание данных."""
        q = 1
        values = {}
        values['person'] = request.json_schema["person"]
        values['date_opr'] = request.json_schema["dateOpr"]
        values['year_input'] = request.json_schema["yearInput"]
        values['vuz'] = request.json_schema["vuz"]
        values['person_id'] = request.json_schema["personId"]
        q = 1
        with session_scope() as session:
            id = candidate_service.create_item(session, values)
        return {"msg": "Данные созданы", "data": {"id": id}}

зачем эта переменная q???

super_govnokoder super_govnokoder, (Updated )

Комментарии (36, +36)

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

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
# Дамп базы хуза
# Постобработка export-а из MySQL

import pandas as pd
import numpy as np
import csv

comments = pd.read_csv('/wp_comments-2.csv', header=None)
comments.head()

##

comments_clean = pd.DataFrame({
    'comment_id': comments[0],
    'comment_post_id': comments[1],
    'comment_parent': comments[13],
    'name': comments[2],
    'gravatar_hash': comments[3].str.split('@').str[0],
    'gravatar_domain': comments[3].str.split('@').str[1],
    'profile': comments[4],
    'date': comments[6],
    'content': comments[8],
})

##

comments_clean[(comments_clean.gravatar_domain != 'lo.ol') & ~comments_clean.gravatar_domain.isna()]

##

comments_clean = comments_clean[(comments_clean.gravatar_domain == 'lo.ol') | comments_clean.gravatar_domain.isna()]
comments_clean.drop(columns=['gravatar_domain'], inplace=True)
comments_clean.head()

##

posts = pd.read_csv('/wp_posts.csv', header=None)
posts = posts[(posts[20] == 'post') & (posts[7] == 'publish') & (posts[11].str.match('^_'))]
posts.head()

##

posts_clean = pd.DataFrame({
    'post_id': posts[0],
    'date': posts[2],
    'content': posts[4],
    'description': posts[6],
    'original_id': posts[11].str[1:]
})
posts_clean.head()

##

comments_clean.to_csv('~/Downloads/gost/comments.csv', index=False)
posts_clean.to_csv('~/Downloads/gost/posts.csv', index=False)

https://govnokod.xyz/dump/wp_gk_legacy_users.csv
../comments.csv
../posts.csv

guest6 guest6, (Updated )

Комментарии (25, +25)

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

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
* g o a t s e x * g o a t s e x * g o a t s e x *
g                                               g  
o /     \             \            /    \       o
a|       |             \          |      |      a
t|       `.             |         |       :     t
s`        |             |        \|       |     s
e \       | /       /  \\\   --__ \\       :    e
x  \      \/   _--~~          ~--__| \     |    x  
*   \      \_-~                    ~-_\    |    *
g    \_     \        _.--------.______\|   |    g
o      \     \______// _ ___ _ (_(__>  \   |    o
a       \   .  C ___)  ______ (_(____>  |  /    a
t       /\ |   C ____)/      \ (_____>  |_/     t
s      / /\|   C_____)BORMAND|  (___>   /  \    s
e     |   (   _C_____)\______/  // _/ /     \   e
x     |    \  |__   \\_________// (__/       |  x
*    | \    \____)   `----   --'             |  *
g    |  \_          ___\       /_          _/ | g
o   |              /    |     |  \            | o
a   |             |    /       \  \           | a
t   |          / /    |         |  \           |t
s   |         / /      \__/\___/    |          |s
e  |           /        |    |       |         |e
x  |          |         |    |       |         |x
* g o a t s e x * g o a t s e x * g o a t s e x *

Bormand, давай в жопы ебаться

Acid Beast Acid Beast, (Updated )

Комментарии (2, +2)

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

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
* g o a t s e x * g o a t s e x * g o a t s e x *
g                                               g  
o /     \             \            /    \       o
a|       |             \          |      |      a
t|       `.             |         |       :     t
s`        |             |        \|       |     s
e \       | /       /  \\\   --__ \\       :    e
x  \      \/   _--~~          ~--__| \     |    x  
*   \      \_-~                    ~-_\    |    *
g    \_     \        _.--------.______\|   |    g
o      \     \______// _ ___ _ (_(__>  \   |    o
a       \   .  C ___)  ______ (_(____>  |  /    a
t       /\ |   C ____)/      \ (_____>  |_/     t
s      / /\|   C_____)       |  (___>   /  \    s
e     |   (   _C_____)\______/  // _/ /     \   e
x     |    \  |__   \\_________// (__/       |  x
*    | \    \____)   `----   --'             |  *
g    |  \_          ___\       /_          _/ | g
o   |              /    |     |  \            | o
a   |             |    /       \  \           | a
t   |          / /    |         |  \           |t
s   |         / /      \__/\___/    |          |s
e  |           /        |    |       |         |e
x  |          |         |    |       |         |x
* g o a t s e x * g o a t s e x * g o a t s e x *

Привет

Sandwich Sandwich, (Updated )

Комментарии (3, +3)

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

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
import logging
import requests
from .. import loader, utils

logger = logging.getLogger(__name__)

def register(cb):
    cb(TagallMod())

def chunks(lst, n):
    for i in range(0, len(lst), n):
        yield lst[i:i + n]

class TagallMod(loader.Module):

    strings = {"name": "Tagall"}

    def __init__(self):
        self.config = loader.ModuleConfig("DEFAULT_MENTION_MESSAGE", "Привет", "Default message of mentions")
        self.name = self.strings["name"]

    async def client_ready(self, client, db):
        self.client = client

    async def tagallcmd(self, message):
        arg = utils.get_args_raw(message)

        logger.error(message)
        notifies = []
        async for user in self.client.iter_participants(message.to_id):
            notifies.append("<a href=\"tg://user?id="+ str(user.id) +"\">\u206c\u206f</a>")
        chunkss = list(chunks(notifies, 10))
        logger.error(chunkss)
        await message.delete()
        for chunk in chunkss:
            await self.client.send_message(message.to_id, (self.config["DEFAULT_MENTION_MESSAGE"] if not arg else arg) + '\u206c\u206f'.join(chunk))

tars777 tars777, (Updated )

Комментарии (20, +20)

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

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
s=79; cur=[s//2,s//2]; prio=[[0,1],[1,0],[0,-1],[-1,0]]
spiral = [[0 for i in range(0,s)] for l in range(0,s)]
for cor in enumerate([[0,0]]+[prio[c] for c in [int(c) for c in ''.join([str(p%4)*((p+2)//2) for p in range(0,s**2//2)])]][:s**2-1],start=1):
    n=cor[0];cur=[cur[0]+cor[1][0],cur[1]+cor[1][1]];spiral[cur[0]][cur[1]]=n
for c in spiral: print(str(('{:>'+str(len(str(s**2))+1)+'}')*len(c)).format(*c))

А теперь попробуй повтори этот шедевр своими трясущимися ручками-веточками на своём С++

pl7ofit pl7ofit, (Updated )

Комментарии (18, +18)