scratchattach icon indicating copy to clipboard operation
scratchattach copied to clipboard

How do i get a Project from a list of them?

Open crzylemon opened this issue 1 year ago • 5 comments

Warning: Caught error in request 'searchTrending' - Full error below
Traceback (most recent call last):
  File "C:\Users\#####\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\scratchattach\cloud_requests.py", line 116, in call_request
    output = req_obj["on_call"](*arguments) # Calls the request function and saves the function's returned data in the output variable
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\######\Documents\scratchattach\scratchBrowser.py", line 14, in searchTrending
    tempProject = projects[i]
                  ~~~~~~~~^^^
TypeError: list indices must be integers or slices, not Project

Here is the searchTrending function

@client.request
def searchTrending(): #called when client receives request
    response = ""
    projects = scratch3.search_projects(query="query", mode="trending", language="en", limit=40, offset=0)
    for i in projects:
        tempProject = projects[i]
        if len(projects) == i:
            response = response + tempProject.title + ";" + tempProject.author + ";" + tempProject.id
        else:
            response = response + tempProject.title + ";" + tempProject.author + ";" + tempProject.id + ":"
    return response

How am i supposed to get a Project from a list of them?

crzylemon avatar May 13 '24 22:05 crzylemon

@client.request
def searchTrending(): #called when client receives request
    response = ""
    projects = scratch3.search_projects(query="query", mode="trending", language="en", limit=40, offset=0)
    for p in projects:
        response += f"{p.title};{p.author};{p.id}:"
    return response

Basic python. You should look into Python beginner's guide

namtacs avatar May 14 '24 05:05 namtacs

@client.request
def searchTrending(): #called when client receives request
    response = ""
    projects = scratch3.search_projects(query="query", mode="trending", language="en", limit=40, offset=0)
    for p in projects:
        response += f"{p.title};{p.author};{p.id}"
    response += ":"
    return response

Basic python. You should look into Python beginner's guide

I want the last one to not have a : , An example of a response i want is: title;author;id:title;author;id:title;author;id

crzylemon avatar May 14 '24 14:05 crzylemon

@client.request
def searchTrending(): #called when client receives request
    response = ""
    projects = scratch3.search_projects(query="query", mode="trending", language="en", limit=40, offset=0)
    for p in projects:
        response += f"{p.title};{p.author};{p.id}:"
    response = response[:-1]
    return response

or (with indexes)

@client.request
def searchTrending(): #called when client receives request
    response = ""
    projects = scratch3.search_projects(query="query", mode="trending", language="en", limit=40, offset=0)
    for idx, p in enumerate(projects):
        response += f"{p.title};{p.author};{p.id}"
        if idx != len(projects)-1: response += ":"
    return response

namtacs avatar May 14 '24 16:05 namtacs

Warning: Caught error in request 'searchTrending' - Full error below
Traceback (most recent call last):
  File "C:\Users\#####\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\scratchattach\cloud_requests.py", line 116, in call_request
    output = req_obj["on_call"](*arguments) # Calls the request function and saves the function's returned data in the output variable
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\######\Documents\scratchattach\scratchBrowser.py", line 14, in searchTrending
    tempProject = projects[i]
                  ~~~~~~~~^^^
TypeError: list indices must be integers or slices, not Project

Here is the searchTrending function

@client.request
def searchTrending(): #called when client receives request
    response = ""
    projects = scratch3.search_projects(query="query", mode="trending", language="en", limit=40, offset=0)
    for i in projects:
        tempProject = projects[i]
        if len(projects) == i:
            response = response + tempProject.title + ";" + tempProject.author + ";" + tempProject.id
        else:
            response = response + tempProject.title + ";" + tempProject.author + ";" + tempProject.id + ":"
    return response

How am i supposed to get a Project from a list of them?

@client.request
def searchTrending(): #called when client receives request
    response = ""
    projects = scratch3.search_projects(query="query", mode="trending", language="en", limit=40, offset=0)
    for i in range(len(projects) - 1):
        tempProject = projects[i]
        if len(projects) - 1 == i:
            response = response + tempProject.title + ";" + tempProject.author + ";" + tempProject.id
        else:
            response = response + tempProject.title + ";" + tempProject.author + ";" + tempProject.id + ":"
    return response

Here is updated code.

Elip100 avatar Jun 28 '24 13:06 Elip100

@client.request
def searchTrending(): #called when client receives request
    response = ""
    projects = scratch3.search_projects(query="query", mode="trending", language="en", limit=40, offset=0)
    for i in range(len(projects) - 1):
        tempProject = projects[i]
        if len(projects) == i:
            response = response + tempProject.title + ";" + tempProject.author + ";" + tempProject.id
        else:
            response = response + tempProject.title + ";" + tempProject.author + ";" + tempProject.id + ":"
    return response

Here is updated code.

Please, do not use this code, it's unclear and even drops 1 project completely. For complete code, see my answer

namtacs avatar Jun 29 '24 10:06 namtacs