Exemplo n.º 1
0
    def mutate(self, info, artwork_data=None):
        metrics = ArtworkMetrics()
        artwork = Artwork(
            title=artwork_data.title,
            artist=artwork_data.artist,
            description=artwork_data.description,
            pictures=artwork_data.pictures if artwork_data.pictures else [],
            found_by=decodeId(artwork_data.found_by),
            location={
                "type": "Point",
                "coordinates":
                [artwork_data.location[0], artwork_data.location[1]]
            },
            metrics=metrics,
            num_ratings=artwork_data.num_ratings,
            rating=artwork_data.rating,
            comments=[],
            tags=artwork_data.tags)
        artwork.save()
        # Add artwork to user portfolio
        user = UpdateUserMutation.getUser(artwork_data.found_by)
        user.personal_portfolio.artworks.append(artwork)
        user.metrics.works_found += 1
        user.save()
        UpdateUserMutation.updateMetrics(user)

        return CreateArtworkMutation(artwork=artwork)
Exemplo n.º 2
0
 def test_addArtwork_2(self):
     newartwork = Artwork(title='defg', artwork_id='00005')
     db.session.add(newartwork)
     db.session.commit()
     findartwork = db.session.query(Artwork).filter_by(
         artwork_id='00005').first()
     self.assertIsNone(findartwork.date)
     db.session.delete(findartwork)
     db.session.commit()
Exemplo n.º 3
0
 def test_addArtwork_1(self):
     newartwork = Artwork(title='def', artwork_id='00004')
     db.session.add(newartwork)
     db.session.commit()
     findartwork = db.session.query(Artwork).filter_by(
         artwork_id='00004').first()
     self.assertEqual(findartwork.title, 'def')
     db.session.delete(findartwork)
     db.session.commit()
Exemplo n.º 4
0
def add_artwork(artist, name, price, availability):
    try:
        artist_id = _get_artist_id(artist)
        new_artwork = Artwork(artist=artist_id,
                              name=name,
                              price=price,
                              available=availability)
        new_artwork.save()
        return f'The artwork \'{name}\' by {artist} was added successfully.'
    except IntegrityError:
        return 'I\'m sorry. There was an issue adding this art.'
Exemplo n.º 5
0
 def test_relationship_2(self):
     newmuseum = Museum(museum='ghijk', museum_id='00011')
     db.session.add(newmuseum)
     db.session.commit()
     newartwork = Artwork(title='defgh',
                          artwork_id='00012',
                          owner=newmuseum)
     db.session.add(newmuseum)
     db.session.commit()
     findartwork = db.session.query(Artwork).filter_by(
         artwork_id='00012').first()
     self.assertEqual(findartwork.artwork_id, '00012')
     db.session.delete(findartwork)
     db.session.commit()
     findmuseum = db.session.query(Museum).filter_by(
         museum_id='00011').first()
     db.session.delete(findmuseum)
     db.session.commit()
Exemplo n.º 6
0
 def test_relationship_1(self):
     newartist = Artist(artist_name='someone', artist_id='00009')
     db.session.add(newartist)
     db.session.commit()
     newartwork = Artwork(title='defgh',
                          artwork_id='00010',
                          painter=newartist)
     db.session.add(newartwork)
     db.session.commit()
     findartwork = db.session.query(Artwork).filter_by(
         artwork_id='00010').first()
     self.assertEqual(findartwork.artist_id, '00009')
     db.session.delete(findartwork)
     db.session.commit()
     findartist = db.session.query(Artist).filter_by(
         artist_id='00009').first()
     db.session.delete(findartist)
     db.session.commit()
Exemplo n.º 7
0
def init_db():
    art = [
        Artwork(title="Street Art", description="A true masterpiece", location=[7,80]),
        Artwork(title="Hidden Subway Mural", description="Far side of the subway station has a double walled mural.", location=[10,132]),
        Artwork(title="Blue Bridge", description="Neon blue tentacles of paint wind up the struts of the bridge", location=[0,0], tags=["amazing"]),
        Artwork(title="Artistic Underpass", description="Bridge ceiling covered in art", location=[0,0], tags=["surreal", "amazing"]),
        Artwork(title="Fire Wall", description="Tongues of flame comemorate the historic fire of this district", tags=["sad", "historic", "amazing"], location=[0,0]),
        Artwork(title="Street Corner Fresco", description="This popular street has a decorative fresco spilling out of the alley behind a popular restaurant", tags=["amazing", "unreal"], location=[0,0])
    ]

    for a in art:
        a.save()

    portfolios = [
        Portfolio(artworks=[art[0], art[1]]),
        Portfolio(artworks=[art[2], art[4]]),
        Portfolio(artworks=[art[1], art[2], art[3]]),
        Portfolio(artworks=[art[3], art[5]]),
    ]
    for p in portfolios:
        p.save()

    users = [
        User(name="Grant", portfolio=portfolios[0], bio="Love me some AI and maybe web dev."),
        User(name="Braden", portfolio=portfolios[1], bio="Spending some time on CSC 400."),
        User(name="Kyle", portfolio=portfolios[2], bio="Fitness, meditation and good books."),
        User(name="John", portfolio=portfolios[3], bio="Looking around for some art. Wasn't satisfied with my dope Windows Vista wallpaper.")
    ]
    for user in users:
        user.save()

    achievements = [
        Achievement(title="Noob", description="You signed up for the service!", points=10)
    ]
    for a in achievements:
        a.save()

    for user in users:
        user.achievements.append(achievements[0])
    for user, portfolio in zip(users, portfolios):
        portfolio.owner = user

    
    for portfolio in portfolios:
        portfolio.save()
Exemplo n.º 8
0
import random
from models import db, Artwork
from contextlib import suppress

headers = {'X-Xapp-Token': os.getenv('ARTSY_X_XAPP_TOKEN')
def getArtsyObject(url):
    return json.loads(requests.get(url, headers=headers).text)

nextUrl = 'https://api.artsy.net/api/artworks?size=50&offset=15'
artists = {} # store artists name
for i in range(0,1):
    print('Next url:', nextUrl)
    response = getArtsyObject(nextUrl)
    artworks = response['_embedded']['artworks']
    for a in artworks:
        o = Artwork()#origin='artsy')
        with suppress (KeyError, IndexError):
            o.name = a['title']
        # get author via API call (or cache)
        with suppress (KeyError, IndexError):
            href = a['_links']['artists']['href']
            if not href in artists:
                artist = getArtsyObject(href)
                artists[href] = artist['_embedded']['artists'][0]['name']
            o.author = artists[href]
        with suppress (KeyError, IndexError):
            href = a['_links']['image']['href']
            if 'large' in a['image_versions']:
                href = href.replace('{image_version}', 'large')
            else:
                href = href.replace('{image_version}', a['image_versions'][0])
Exemplo n.º 9
0
def create_museums_db():

    #load museum data
    with open('museum.json') as f:
        museums = json.load(f)
        #processes muesum data
        for dmuseum in museums['museum']:
            museum_id = dmuseum["museum_id"]
            museum = dmuseum["museum"]
            location = dmuseum["location"]

            #process moma data
            if museum == "Museum of Modern Art":
                moma = Museum(museum=museum,
                              location=location,
                              museum_id=museum_id)
                db.session.add(moma)
                db.session.commit()
            #process Tate data
            elif museum == "Tate Modern":
                tate = Museum(museum=museum,
                              location=location,
                              museum_id=museum_id)
                db.session.add(tate)
                db.session.commit()
        f.close()

    # load artist data
    artistfiles = {"momaArtist":["moma_artists.csv",250,None],\
    "tateArtist":["tate_artist_data.csv",100,None]}
    artistData = load_data(artistfiles)

    #processes artist data
    for museumName, museumData in artistData.items():
        for index in museumData:

            if museumName == "momaArtist":
                gender = museumData[index]["Gender"]
                artist_id = str(museumData[index]["ConstituentID"]) + "_moma"
                artist_name = museumData[index]["DisplayName"]
                artist_dates = museumData[index]["BeginDate"]
                nationality = museumData[index]["Nationality"]
            elif museumName == "tateArtist":
                gender = museumData[index]["gender"]
                artist_id = str(museumData[index]["id"]) + "_tate"
                artist_name = museumData[index]["name"]
                artist_dates = museumData[index]["dates"]
                nationality = museumData[index]["placeOfBirth"]

            newArtist = Artist(artist_id=artist_id,
                               artist_name=artist_name,
                               artist_dates=artist_dates,
                               gender=gender,
                               nationality=nationality)
            db.session.add(newArtist)
            db.session.commit()

    # load artwork data
    artworkfiles = {"momaArtwork":['moma_artworks.csv',750, None],\
    "tateArtwork":["tate_artwork_data.csv",400,None]}
    artworkData = load_data(artworkfiles)

    #proceses artwork data
    for museumName, museumData in artworkData.items():

        for index in museumData:

            #processes moma data
            if museumName == "momaArtwork":
                # skips columens with an artist ID error
                if "," in str(museumData[index]["ConstituentID"]):
                    pass
                else:
                    title = museumData[index]["Title"]
                    artist = museumData[index]["Artist"]
                    artist_id = str(
                        museumData[index]["ConstituentID"]) + "_moma"
                    date = museumData[index]["Date"]
                    medium = museumData[index]["Medium"]
                    credit = museumData[index]["CreditLine"]
                    acquired_date = museumData[index]["DateAcquired"]
                    imageURL = museumData[index]["ThumbnailURL"]
                    dimensions = museumData[index]["Dimensions"]
                    artwork_id = str(museumData[index]["ObjectID"]) + "_moma"

                    newArtwork = Artwork(title = title, artist = artist, artist_id= artist_id, date = date, \
                        medium = medium,  credit = credit, acquired_date = acquired_date, imageURL = imageURL, \
                    dimensions = dimensions, artwork_id = artwork_id, owner = moma)

            #processes tate data
            elif museumName == "tateArtwork":
                title = museumData[index]["title"]
                artist = museumData[index]["artist"]
                artist_id = str(museumData[index]["artistId"]) + "_tate"
                date = museumData[index]["year"]
                medium = museumData[index]["medium"]
                credit = museumData[index]["creditLine"]
                acquired_date = museumData[index]["acquisitionYear"]
                imageURL = museumData[index]["thumbnailUrl"]
                dimensions = museumData[index]["dimensions"]
                artwork_id = str(museumData[index]["id"]) + "_tate"

                newArtwork = Artwork(title = title, artist = artist, artist_id= artist_id, date = date, \
                    medium = medium,  credit = credit, acquired_date = acquired_date, imageURL = imageURL, \
                    dimensions = dimensions, artwork_id = artwork_id, owner = tate)

            db.session.add(newArtwork)
            db.session.commit()