1. Python / Говнокод #27865

    +2

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    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, 11 Декабря 2021

    Комментарии (331)
  2. Python / Говнокод #27756

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    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, 18 Октября 2021

    Комментарии (36)
  3. Python / Говнокод #27617

    −2

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    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, 26 Августа 2021

    Комментарии (25)
  4. Python / Говнокод #27542

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    class Bagor:
    	r = []
    	
    	def __init__(self, val):
    		self.r.append(val)
    		
    	def get(self):
    		return self.r[0]
    		
    kakoi = Bagor(1)
    bagor = Bagor(2)
    print([kakoi.get(), bagor.get()])

    https://ideone.com/K7tADi

    3_dar, 29 Июля 2021

    Комментарии (26)
  5. Python / Говнокод #27499

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    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, 06 Июля 2021

    Комментарии (20)
  6. Python / Говнокод #27491

    +1

    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, 29 Июня 2021

    Комментарии (18)
  7. Python / Говнокод #27446

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    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
    # Калькулятор полных линейных неравенств
    
    # Модули
    from math import sqrt
    
    # Пояснение
    print('Это калькулятор полных линейных неравенств')
    print('Эти неравенства выглядят так: a*x^2 +- b*x +- c = 0')
    print('a, b и c - коэффиценты.\n')
    
    # Ввод коэффицентов
    a = int(input('Введите коэффицент a:'))
    b = int(input('Введите коэффицент b:'))
    c = int(input('Введите коэффицент c:'))
    r = 0
    D = 0
    # Решение: вид неравенства
    if b >= 0: 
        g = '+ '
    else:
        g = ''
    if c >= 0: 
        f = '+ '
    else:
        f = ''
    print('Так выглядит уравнение: ' + str(a) + 'x^2 ' + str(g) + str(b) + '*x ' + str(f) + str(c) + ' = 0')
    
    # Решение: коэффиценты и дискриминант
    print('Дискриминант(D) равен b^2 - 4 * a * c')
    print('Значит D = ' + str(b) + '^2 - 4 * ' + str(a) + ' * ' + str(c))
    b = int(b)
    a = int(a)
    c = int(c)
    D = b**2 - 4 * a * c
    print('D = ' + str(D))
    drt = sqrt(D)
    # Решение: ответ
    if D < 0:
        print('Ответ: Уравнение не имеет корней, так как дискриминант меньше нуля')
    elif D == 0:
        print('Уравнение имеет один корень: ')
        x = -b/(2*a)
        print('Корень уравнения: x = ' + str(x))
    elif D > 0: 
        print('Уравнение имеет два корня: ')
        x1 = (-b - drt)/2*a
        x2 = (-b + drt)/2*a
        print("Корни уравнения: x1 = " + str(x1) + ', x2 = ' + str(x2))
    else:
        r = 0

    Вот это чудо Я(гуманитарий) состряпал за 15 минут на второй день изучения питона. Ну как? Так ли худо?

    ni2kta, 31 Мая 2021

    Комментарии (96)
  8. Python / Говнокод #27441

    +1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    from bs4 import BeautifulSoup
    import requests
    
    user = "**********"
    r = requests.get('https://www.last.fm/user/' + user)
    soup = BeautifulSoup(r.content, 'html.parser')
    page = soup.prettify()
    
    #Top artists
    print(
    page[int(page.find('’s top artists: ') + len('’s top artists: ')):int(page.find('. Get your own music profile at Last.fm')):]
    )
    
    #Top track
    print(
    ''.join(i if i != "+" else " " for i in (page[int(page.find('data-analytics-action="FeaturedTrackTrackName" href="/music/') + len('data-analytics-action="FeaturedTrackTrackName" href="/music/')):int(page.find('/_/', int(page.find('data-analytics-action="FeaturedTrackTrackName" href="/music/') + len('data-analytics-action="FeaturedTrackTrackName" href="/music/')))):] + " - " + page[int(page.find('/_/')) + 3:page.find('"', int(page.find('/_/'))):]))
    )

    Сбор с lastfm любимых исполнителей и любимого трека

    G-Chist, 28 Мая 2021

    Комментарии (108)
  9. Python / Говнокод #27426

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    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
    from colorama import init, Fore, Back, Style
    init()
    print(Back.BLACK)
    print(Fore.RED)
    print(Style.NORMAL)
    print("Script mamoeba/Скрипт сделан")
    print("┌────────────────────────────────────┐")
    print("│Author : GovnoCode user                  │")
    print("│Github : https://:/│")
    print("└────────────────────────────────────┘")
    print("YouTube: utube")
    print("▄▀▄ █▄░▄█ ▀ █▄░█ ▄▀▄ ▄▀▄ █▀▄ ▐▌░▐▌ █▀▄ ▄▀▄")
    print("█▀█ █░█░█ █ █░▀█ █░█ █▀█ █░█ ░▀▄▀░ █▀█ █░█")
    print("▀░▀ ▀░░░▀ ▀ ▀░░▀ ░▀░ ▀░▀ ▀▀░ ░░▀░░ ▀▀░ ░▀░")
    print("Advertise Bot Amino")
    lz = []
    from concurrent.futures import ThreadPoolExecutor
    import concurrent.futures
    import amino
    def advertise(data):
        listusers = []
        for userId in data.profile.userId:
            listusers.append(userId)
        return listusers
        
    email = input("Email/Почта: ")
    password = input("Password/Пароль: ")
    msg = input("Message/Сообщение: ")
    client = amino.Client()
    client.login(email=email, password=password)
    clients = client.sub_clients(start=0, size=1000)
    for x, name in enumerate(clients.name, 1):
        print(f"{x}.{name}")
    communityid = clients.comId[int(input("Выберите сообщество/Select the community: "))-1]
    sub_client = amino.SubClient(comId=communityid, profile=client.profile)
    users = sub_client.get_online_users(size=1000)
    user = advertise(users)
    for i in lz:
            if i in user:
                user.remove(i)
         
            
    print("Sending Advertise")
    for _ in range(4000):
        with concurrent.futures.ThreadPoolExecutor(max_workers=40000) as executor:
            _ = [executor.submit(sub_client.start_chat, user, msg) for userId in user]
    
    print("Sending Advertise 2")
    for _ in range(4000):
        with concurrent.futures.ThreadPoolExecutor(max_workers=40000) as executor:

    Flow, 13 Мая 2021

    Комментарии (67)
  10. Python / Говнокод #27419

    +2

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    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
    from enum import Enum
    from dataclasses import dataclass
    
    class Pathfind:
        __init__ = lambda self, maxmoves=9999: exec(f'self.maxmoves={maxmoves}')
        def pathfind(self, cells):
            i, found, ecords, path = 0, False, (0,0), list()
            while(not found):
                a = self.getbyval(cells, i)
                for n in [j for sub in [self.filterneighbors(self.getneighbors(cells, x[0], x[1])) for x in a] for j in sub]:
                    cells[n.ccoords[1]][n.ccoords[0]].value = i+1 if cells[n.ccoords[1]][n.ccoords[0]].value>(i+1) else cells[n.ccoords[1]][n.ccoords[0]].value
                    if cells[n.ccoords[1]][n.ccoords[0]].ctype == CellType.END: found, ecords = True, (n.ccoords[1],n.ccoords[0])
                if i<self.maxmoves: i+=1
                else: return False
            found, cpath = False, ecords
            while(not found):
                path.append(cpath)
                if cpath == self.getbyval(cells, 0)[0]: return path
                cell = list(filter(None, ([x if x.value==cells[cpath[0]][cpath[1]].value-1 else None for x in self.filterneighbors(self.getneighbors(cells, cpath[0], cpath[1]))])))[0]
                cpath = (cell.ccoords[1],cell.ccoords[0])
                
        listtocells = lambda self, lst: [[Cell(CellType(lst[y][x]), (x,y), 0 if lst[y][x]==2 else self.maxmoves) for x in range(len(lst[y]))] for y in range(len(lst))]
        getbyval = lambda self, cells, val: [(x, y) for x in range(len(cells)) for y in range(len(cells[x])) if cells[x][y].value == val]
        getneighbors = lambda self, cells, x, y: list(filter(None, [cells[x-1][y] if x>0 else None,cells[x+1][y] if x<len(cells)-1 else None,cells[x][y-1] if y>0 else None,cells[x][y+1] if y<len(cells[x])-1 else None]))
        filterneighbors = lambda self, cells: list(filter(lambda cell: False if (cell is None) or cell.ctype==CellType.WALL else True, cells))
    
    class CellType(Enum):
    	AIR, WALL, START, END = 0, 1, 2, 3
    
    @dataclass
    class Cell:
        ctype: CellType = CellType.AIR
        ccoords: tuple = (0,0)
        value: int = 0

    Максимально уёбищная реализация волнового алгоритма.

    Gehennom, 11 Мая 2021

    Комментарии (52)