Exemplo n.º 1
0
def witness(report, video_path):
    print('Getting detections...')
    frame_detections, last_frame = detection.get_frame_detections(video_path)

    print('Getting colliders...')
    colliders = sorted(frame_detections[-1], key=lambda x: x.area, reverse=True)[:2]

    print(len(colliders))
    
    print('Getting surrounding bbox...')
    surr_bbox = utils.get_surrounding_box(colliders[0].bbox, colliders[1].bbox)
    surr_crop = last_frame[surr_bbox[1]:surr_bbox[1]+surr_bbox[3], surr_bbox[0]:surr_bbox[0]+surr_bbox[2], :]

    print('Saving images...')
    car1_img = Image.from_arr(colliders[0].img, report.id)
    car2_img = Image.from_arr(colliders[1].img, report.id)
    accident_img = Image.from_arr(last_frame, report.id)
    surr_img = Image.from_arr(surr_crop, report.id)

    report.images.append(car1_img)
    report.images.append(car2_img)
    report.images.append(accident_img)
    report.images.append(surr_img)

    report.analysis_complete = True
    report.car_color = "{},{}".format(color.rgb_to_hex(*color.dominant_color(colliders[0].img)), color.rgb_to_hex(*color.dominant_color(colliders[1].img)))
    db.session.commit()
    print('Completed analysis...')
    return True
Exemplo n.º 2
0
    def image_upload(request):
        pass
        """
        Upload an image
        :param request: HttpRequest
        :return: JsonResponse
        """
        status, msg = False, "Invalid Request"

        form = ImageUploadForm(request.POST, request.FILES)
        if request.user.is_authenticated and form.is_valid():
            t = Tools.handle_uploaded_file(request.FILES['file'],
                                           form.extension)
            if t[0]:
                #delete profile pic if it exist
                if form.category == "PI":
                    pi = Image_DB.objects.filter(username=form.username,
                                                 category=form.category)
                i = Image_DB(username=form.username,
                             category=form.category,
                             url=t[1])
                if Image.delete_image(pi.url, request, form.category):
                    i.save()
                    status, msg = True, "Success"

        return JsonResponse({"status": status, "msg": msg})
Exemplo n.º 3
0
def post_image_to_person(args, id):
    img = Image(**args)
    add_new_obj(img)
    #TODO: call to FaceDetector to wake up if not currently woken up, as there's a new image.
    #Think thorugh logic need to be absolutely sure that FaceDetector checks for this.
    # Send person id to the FaceDetector and tell it to add to the face:
    # profile_face=True, person_id_by_human, image_id, face_path
    return create_response(img.to_dict(), 201)
Exemplo n.º 4
0
 def make_image(**kwargs):
     user = create_user()
     create_account(username=user.username, **kwargs)
     with open('default.JPG', 'rb') as f:
         file = File(f)
         img = Image(image=file, user=user)
         img.save()
         return img
Exemplo n.º 5
0
def test_save_image_without_pic():
    image = Image(
        title='my picture',
        description='my description',
    )
    image.save()

    assert image.title == 'my picture'
    assert image.description == 'my description'
Exemplo n.º 6
0
 def create(self, validated_data):
     user = None
     request = self.context.get("request")
     if request and hasattr(request, "user"):
         user = request.user
     image_instance = Image(**validated_data)
     image_instance.user = user
     image_instance.save()
     return image_instance
Exemplo n.º 7
0
def take_photo(photo_id, group, sample_id):
    '''
    Calls the Picam class to have the hardware take a picture.
    Returns a Picture object
    '''
    camera = Picam()
    file_path = camera.take_still(str(photo_id) + '.jpg')
    image = Image(id=photo_id,
                  group=group,
                  sample_id=sample_id,
                  type=Image.PHOTO,
                  subject=group.subject,
                  file_path=file_path)
    image.save()
    return image
Exemplo n.º 8
0
def take_photo(photo_id, group, sample_id):
    '''
    Calls the Picam class to have the hardware take a picture.
    Returns a Picture object
    '''
    camera = Picam()
    file_path = camera.take_still(str(photo_id) + '.jpg')
    image = Image(id=photo_id,
                  group=group,
                  sample_id=sample_id,
                  type=Image.PHOTO,
                  subject=group.subject,
                  file_path=file_path)
    image.save()
    return image
Exemplo n.º 9
0
def create_images(link_array, c_id):
    """
    Inserts every image in the array with a category

    Parameters
    ----------
    link_array : array
        an array of links.
    c_id : int
        id of a category
    """
    for link in link_array:
        Image.create_image(link=link[0],
                           description='',
                           attribute=link[1],
                           c_id=c_id)
Exemplo n.º 10
0
def image_upload(request):
    if request.method != "POST":
        return HttpResponse()
    source = request.FILES.get('file')
    if source != None:
        source.name = ImageTool.get_new_random_file_name(source.name)
        image = Image(
            img=source
        )
        image.save()
        return HttpResponse(json.dumps({
            'success': True,
            'path': image.img.url
        }))
    else:
        return HttpResponse(json.dumps({
            'success': False,
        }))
Exemplo n.º 11
0
def test_parse_image_bad_url(mocker):
    mocker.patch('api.api.is_valid_url', return_value=False)
    image_url = 'some url'
    image = Image(
        title='my picture',
        description='my description',
    )
    result = parse_image(image, image_url)

    assert not result
Exemplo n.º 12
0
def test_parse_image_good_url_non_picture(mocker):
    mocker.patch('api.api.is_valid_url', return_value=True)
    mocker.patch('api.api.retrieve_image', return_value=(None, None))
    image_url = 'some url'
    image = Image(
        title='my picture',
        description='my description',
    )
    result = parse_image(image, image_url)

    assert not result
Exemplo n.º 13
0
def hit(report, video_path):
    print('Getting detections...')
    frame_detections, last_frame = detection.get_frame_detections(video_path)
    
    print('Finding nested detections...')
    # Get a list of nested detection pairs by bounding box
    # pairs = detection.find_nested_detections(frame_detections)

    print(len(frame_detections))
    
    print('Finding target...')
    # The largest area is probably the car that hit us
    target = sorted(frame_detections, key=lambda x: x[0].area, reverse=True)[0]

    # Extract info from the target
    car_det = target[0]
    # license_det = target[1]

    print('Saving images...')
    # Save images
    car_img = Image.from_arr(car_det.img, report.id)
    # license_img = Image.from_arr(license_det.img, report.id)
    accident_img = Image.from_arr(last_frame, report.id)

    print('Adding images to report...')
    # Add images to the report
    report.images.append(car_img)
    # report.images.append(license_img)
    report.images.append(accident_img)
    db.session.commit()

    print('Reporting analysis...')
    report.analysis_complete = True
    report.car_color = color.rgb_to_hex(*color.dominant_color(car_det.img))
    db.session.commit()
    
    print('Completed analysis...')

    return True
Exemplo n.º 14
0
 def setUp(self):
     self.user_data = {
         "username": "******",
         "first_name": "black",
         "last_name": "panther",
     }
     user_instance = User(**self.user_data)
     user_instance.set_password("gamora")
     user_instance.save()
     image_instance = Image()
     image_instance.user = user_instance
     image_instance.image = File(create_test_image())
     image_instance.name = "test"
     image_instance.color = "BLACK"
     image_instance.save()
Exemplo n.º 15
0
def generate_chart(sample_id, image_id):
    sample = get_object_or_404(Sample, id=sample_id)
    readings = csv_string_to_int_list(sample.data)

    the_title = 'Readings for ' + sample.reading_type + ' sample ' + str(sample_id)
    if sample.description:
        the_title += "\n" + sample.description

    x = range(len(readings))
    plt.bar(x, readings, 1, color='black')
    plt.title(the_title)
    plt.xlabel('wavelength (340 - 780nm)')
    plt.ylabel('magnitude')

    root_directory = '/home/pi/Pictures'  # TODO move this into settings:IMAGE_SAVE_PATH
    file_path = os.path.join(root_directory, (str(image_id) + '.png'))
    image = Image(id=image_id,
                  group=sample.group,
                  sample_id=sample_id,
                  type=Image.BAR_CHART,
                  file_path=file_path)
    image.save()  # save the image record
    plt.savefig(file_path)  # save the actual file with the image
Exemplo n.º 16
0
def fill_tables():
    r1 = Repository(repository_path="img_dir", repository_type="local")
    p1 = Person(name="Nick")
    p2 = Person(name="John")
    p3 = Person(name="Mary")
    img1 = Image(image_path="img1.png", repository=r1)
    img2 = Image(image_path="img2.png", repository=r1)
    face1 = Face(face_path=".face/f1.png",
                 image=img1,
                 person_by_human=p1,
                 profile_face=True)
    face2 = Face(face_path=".face/f2.png",
                 image=img1,
                 person_by_human=p2,
                 profile_face=True)
    # want to check getting unknown faces
    np_arr = np.array([1, 2, 4, 3], dtype=np.float32)
    bin_data = pickle.dumps(np_arr)
    logger.info(bin_data)
    face3 = Face(face_path=".face/f3.png", image=img2, embedding=bin_data)
    db.session.add_all([face1, face2, face3])
    db.session.commit()
    return create_response()
Exemplo n.º 17
0
def add_directories(repo):
    logger.info("adding directories")
    repo_path = repo.repository_path
    image_paths = []
    extensions = ['.jpg', '.JPG']
    for ext in extensions:
        for path in Path(repo_path).rglob(f"*{ext}"):
            formatted_path = Path(str(path).replace(repo_path, ""))
            image_paths.append(str(formatted_path))
    images = []
    for img_path in image_paths:
        images.append(Image(image_path=img_path, repository_id=repo.id))
    add_new_obj(images)
    logger.info(image_paths)
Exemplo n.º 18
0
def add_image():
    item_id = request.form['id']
    print(item_id)
    img = request.files['file']
    filename = str(datetime.now().year) + str(datetime.now().month) + str(
        datetime.now().day) + str(datetime.now().hour) + str(
            datetime.now().minute) + str(datetime.now().second) + str(
                datetime.now().microsecond) + "." + img.filename.split(".")[-1]
    img.save(os.path.join(UPLOAD_DIRECTORY, filename))
    itm = Item.query.filter_by(id=item_id).first()
    im = Image(picname=filename, item=itm)
    db.session.add(im)
    db.session.commit()
    return './pics/' + filename, 201
Exemplo n.º 19
0
def generate_chart(sample_id, image_id):
    sample = get_object_or_404(Sample, id=sample_id)
    readings = csv_string_to_int_list(sample.data)

    the_title = 'Readings for ' + sample.reading_type + ' sample ' + str(
        sample_id)
    if sample.description:
        the_title += "\n" + sample.description

    x = range(len(readings))
    plt.bar(x, readings, 1, color='black')
    plt.title(the_title)
    plt.xlabel('wavelength (340 - 780nm)')
    plt.ylabel('magnitude')

    root_directory = '/home/pi/Pictures'  # TODO move this into settings:IMAGE_SAVE_PATH
    file_path = os.path.join(root_directory, (str(image_id) + '.png'))
    image = Image(id=image_id,
                  group=sample.group,
                  sample_id=sample_id,
                  type=Image.BAR_CHART,
                  file_path=file_path)
    image.save()  # save the image record
    plt.savefig(file_path)  # save the actual file with the image
Exemplo n.º 20
0
def uploadImage(id):
    image = request.files["image"]
    try:
        account_type = int(request.form["account_type"])
    except:
        msg = "Level param doesn't exist or isn't an int"
        return create_response(status=422, message=msg)

    account = None

    try:
        image_response = imgur_client.send_image(image)
    except:
        return create_response(status=400, message=f"Image upload failed")

    try:
        if account_type == Account.MENTEE:
            account = MenteeProfile.objects.get(id=id)
        elif account_type == Account.MENTOR:
            account = MentorProfile.objects.get(id=id)
        else:
            msg = "Level param doesn't match existing account types"
            return create_response(status=422, message=msg)
    except:
        msg = ""
        if account_type == Account.MENTEE:
            msg = "No mentee with that id"
        elif account_type == Account.MENTOR:
            msg = "No mentor with that id"
        logger.info(msg)
        return create_response(status=422, message=msg)

    try:
        if account.image is True and account.image.image_hash is True:
            image_response = imgur_client.delete_image(
                account.image.image_hash)
    except:
        logger.info("Failed to delete image but saving new image")

    new_image = Image(
        url=image_response["data"]["link"],
        image_hash=image_response["data"]["deletehash"],
    )

    account.image = new_image

    account.save()
    return create_response(status=200, message=f"Success")
Exemplo n.º 21
0
    def create(self, request):
        try:
            # tokenの確認
            authorization = self.check_authorization()
            if authorization:
                # tokenがなかったり違っていたらJSONレスポンスを返す
                return authorization

            # JSONの読み込み
            data = json.loads(request.body)

            # base64を受け取る
            image = data['image']
            # category
            category = data['category']
            # post_id
            post_id = data.get('post_id')

            # base64の確認
            if not isinstance(image, six.string_types):
                # 数字だった場合400を返す
                return JsonResponse({'message': 'Does not base64'}, status=400)

            # base64で受け取った値を変換してファイルとして保存できるようにする
            file = base64.b64decode(image)
            # ファイルサイズの制限(とりあえず1MB)
            if len(file) > 1000000:
                return JsonResponse(
                    {'message': 'Please set it to 1MB or less'}, status=400)
        except:
            # JSONの読み込みに失敗
            return JsonResponse({'message': 'Post data injustice'}, status=400)

        # 写真の保存
        image = Image.create(file, category, self.token.user_id, post_id)

        # 写真が保存されたレスポンスを返す
        results = {
            'id': str(image.id),
            'image': str(image.image),
        }
        return JsonResponse(results, status=201)
Exemplo n.º 22
0
    def run(self):
        # Close connections to database, to prevent problems.
        db.connections.close_all()
        for row in csv_reader(self.csv_file, self.charset):
            for value in row:
                # Skip already saved files.
                if Image.objects.filter(source__iexact=value):
                    continue
                image_file, image_type = download_image(value)
                if image_file is None:
                    continue
                random_string = get_random_string(RANDOM_FILENAME_LENGTH)
                # Create database image object and save it.
                image = Image(source=value, type=image_type)

                # Saving file as described in
                # http://www.revsys.com/blog/2014/dec/03/loading-django-files-from-code/
                image.file.save('{}.original.{}'.format(
                    random_string, image_type),
                                image_file,
                                save=True)
Exemplo n.º 23
0
def uploadFile():
    if request.method == "POST":
        for i in request.files:
            form_picture = request.files[str(i)]
            # Create hexa filename
            random_hex = secrets.token_hex(8)
            # Get extension of the file
            _, f_ext = os.path.splitext(form_picture.filename)
            # build new filename
            picture_filename = random_hex + f_ext
            # Build path
            picture_path = os.path.join("images/", picture_filename)
            # Resize image
            output_size = (600, 600)
            img = PilImage.open(form_picture)
            img.thumbnail(output_size)
            # Save image in filesystem
            img.save(picture_path)
            # add to database
            db_image = Image(source=picture_filename)
            db.session.add(db_image)
        # COMMIT OUTSIDE OF THE LOOP ?
        db.session.commit()
        return json.dumps({"status": "success"})
Exemplo n.º 24
0
def populate():
    """Method that populates the databse with data"""

    db.session.close()
    db.drop_all()
    db.create_all()

    User.create_user("admin", "admin")

    c_male = Category.create_category(name="Jongen",
                                      metacategory=Metacategory.gender)
    c_female = Category.create_category(name="Meisje",
                                        metacategory=Metacategory.gender)
    c_programmer = Category.create_category(
        name="Programmeur", metacategory=Metacategory.profession)
    c_writer = Category.create_category(name="Schrijver",
                                        metacategory=Metacategory.profession)
    c_alone = Category.create_category(name="Alleen",
                                       metacategory=Metacategory.social)
    c_together = Category.create_category(name="Samen",
                                          metacategory=Metacategory.social)
    c_gaming = Category.create_category(name="Gamen",
                                        metacategory=Metacategory.hobby)
    c_tennis = Category.create_category(name="Tennis",
                                        metacategory=Metacategory.hobby)

    male_images = [
        'https://res.cloudinary.com/hctr0xmqp/image/upload/v1591276420/Gender/gender_male_1_dh1pbq.png',
        'https://res.cloudinary.com/hctr0xmqp/image/upload/v1591276420/Gender/gender_male_2_bsbqc9.png',
        'https://res.cloudinary.com/hctr0xmqp/image/upload/v1591276421/Gender/gender_male_3_eknmuv.png',
        'https://res.cloudinary.com/hctr0xmqp/image/upload/v1591276421/Gender/gender_male_4_d1clch.png'
    ]

    female_images = [
        'https://res.cloudinary.com/hctr0xmqp/image/upload/v1591276422/Gender/gender_female_1_nph1ga.png',
        'https://res.cloudinary.com/hctr0xmqp/image/upload/v1591276420/Gender/gender_female_2_fjfxrv.png',
        'https://res.cloudinary.com/hctr0xmqp/image/upload/v1591276420/Gender/gender_female_3_erg7nd.png',
        'https://res.cloudinary.com/hctr0xmqp/image/upload/v1591276420/Gender/gender_female_4_b0vc8l.png'
    ]

    programmer_images = [
        ("https://res.cloudinary.com/hctr0xmqp/image/upload/v1591276505/Profession/profession_programmer_1_c6pvby.png",
         "App"),
        ("https://res.cloudinary.com/hctr0xmqp/image/upload/v1591276504/Profession/profession_programmer_2_rbcfov.png",
         "Laptop"),
        ("https://res.cloudinary.com/hctr0xmqp/image/upload/v1591276504/Profession/profession_programmer_3_cjwqsw.png",
         "Keyboard"),
        ("https://res.cloudinary.com/hctr0xmqp/image/upload/v1591276504/Profession/profession_programmer_4_xbviey.png",
         "Website")
    ]

    writer_images = [
        ("https://res.cloudinary.com/hctr0xmqp/image/upload/v1591276504/Profession/profession_writer_1_o8xzue.png",
         "Newspaper"),
        ("https://res.cloudinary.com/hctr0xmqp/image/upload/v1591276504/Profession/profession_writer_2_mmpdnx.png",
         "Papers"),
        ("https://res.cloudinary.com/hctr0xmqp/image/upload/v1591276505/Profession/profession_writer_3_qyl8aq.png",
         "Pen"),
        ("https://res.cloudinary.com/hctr0xmqp/image/upload/v1591276505/Profession/profession_writer_4_tbvw0b.png",
         "Book")
    ]

    gaming_images = [
        ("https://res.cloudinary.com/hctr0xmqp/image/upload/v1591276493/Hobby/hobby_gaming_1_tlfl07.png",
         "Game Controller"),
        ("https://res.cloudinary.com/hctr0xmqp/image/upload/v1591276493/Hobby/hobby_gaming_2_ruribs.png",
         "Game Controller"),
        ("https://res.cloudinary.com/hctr0xmqp/image/upload/v1591276493/Hobby/hobby_gaming_3_hvkfme.png",
         "Game Controller"),
        ("https://res.cloudinary.com/hctr0xmqp/image/upload/v1591276493/Hobby/hobby_gaming_4_cb1doe.png",
         "Game Controller")
    ]

    tenis_images = [
        ("https://res.cloudinary.com/hctr0xmqp/image/upload/v1591276495/Hobby/hobby_tennis_1_ei7yic.png",
         "Net"),
        ("https://res.cloudinary.com/hctr0xmqp/image/upload/v1591276493/Hobby/hobby_tennis_2_qx7tms.png",
         "Racket"),
        ("https://res.cloudinary.com/hctr0xmqp/image/upload/v1591276493/Hobby/hobby_tennis_3_pdsnou.png",
         "Shoe"),
        ("https://res.cloudinary.com/hctr0xmqp/image/upload/v1591276493/Hobby/hobby_tennis_4_v5yam2.png",
         "Ball")
    ]

    alone_images = [
        ("https://res.cloudinary.com/hctr0xmqp/image/upload/v1591276518/Social/social_alone_1_wy8rpb.png",
         "Alone"),
        ("https://res.cloudinary.com/hctr0xmqp/image/upload/v1591276516/Social/social_alone_2_vy3tmr.png",
         "Alone"),
        ("https://res.cloudinary.com/hctr0xmqp/image/upload/v1591276518/Social/social_alone_3_ygnsbz.png",
         "Alone"),
        ("https://res.cloudinary.com/hctr0xmqp/image/upload/v1591276517/Social/social_alone_4_ppasf1.png",
         "Alone")
    ]

    together_images = [
        ("https://res.cloudinary.com/hctr0xmqp/image/upload/v1591276518/Social/social_together_1_eumalw.png",
         "Together"),
        ("https://res.cloudinary.com/hctr0xmqp/image/upload/v1591276517/Social/social_together_2_ketyo1.png",
         "Together"),
        ("https://res.cloudinary.com/hctr0xmqp/image/upload/v1591276517/Social/social_together_3_s4wzba.png",
         "Together"),
        ("https://res.cloudinary.com/hctr0xmqp/image/upload/v1591276517/Social/social_together_4_ea2yka.png",
         "Together")
    ]

    for link in male_images:
        Image.create_image(link=link,
                           description="Man",
                           attribute='man standing',
                           c_id=c_male.id)

    for link in female_images:
        Image.create_image(link=link,
                           description='Girl',
                           attribute='girl standing',
                           c_id=c_female.id)

    create_images(programmer_images, c_programmer.id)
    create_images(writer_images, c_writer.id)
    create_images(gaming_images, c_gaming.id)
    create_images(tenis_images, c_tennis.id)
    create_images(alone_images, c_alone.id)
    create_images(together_images, c_together.id)

    # likert
    create_likert(
        "Ik ben sociaal. "
        "Als je sociaal bent maak je makkelijk vrienden en werk je graag samen"
    )
    create_likert("Ik ben graag de beste")
    create_likert("Ik ben gek op computers")
    create_likert("Ik wil later programmeur worden")
    create_likert(
        "Programmeurs zijn sociaal. "
        "Als je sociaal bent maak je makkelijk vrienden en werk je graag samen"
    )
    create_likert("Programmeurs houden ervan om de beste te zijn")
    create_likert(
        "Programmeurs zijn gek op computers en hebben weinig andere hobby’s")
    create_likert("Programmeur zijn, dat is een beroep voor mannen")
    create_likert("Programmeur zijn, dat is een beroep voor vrouwen")
    create_likert(
        "Schrijvers zijn sociaal. "
        "Als je sociaal bent maak je makkelijk vrienden en werk je graag samen"
    )
    create_likert("Schrijvers houden ervan om de beste te zijn")
    create_likert(
        "Schrijvers zijn gek op computers en hebben weinig andere hobby’s")
    create_likert("Schrijver zijn, dat is een beroep voor mannen")
    create_likert("Schrijver zijn, dat is een beroep voor vrouwen")

    Question.create_question(q_type=QuestionType.open_question,
                             text="Wat doet een programmeur?")

    video_female = Image.create_image(link="173d_-zTd1o",
                                      description='Role model intervention',
                                      attribute='Female')
    video_male = Image.create_image(link="hEMOMVZbSBE",
                                    description='Role model intervention',
                                    attribute='Male')

    # video_question
    Question.create_question(q_type=QuestionType.video, images=[video_female])

    mc_1 = Question.create_question(q_type=QuestionType.mc_single_answer,
                                    text="Hoe oud ben je?",
                                    information=ParticipantInformationType.age)
    for i in range(6, 19):
        QuestionChoice.create_choice(choice_num=i - 5,
                                     q_id=mc_1.id,
                                     text=str(i))
    QuestionChoice.create_choice(choice_num=14, q_id=mc_1.id, text="Anders")

    mc_2 = Question.create_question(
        q_type=QuestionType.mc_multiple_answer,
        text="Wat is jouw achtergrond? Er zijn meerdere antwoorden mogelijk.",
        information=ParticipantInformationType.ethnicity)
    for i, ethnicity in enumerate(Ethnicity.__iter__(), 1):
        QuestionChoice.create_choice(choice_num=i,
                                     q_id=mc_2.id,
                                     text=ethnicity.value)

    mc_3 = Question.create_question(
        q_type=QuestionType.mc_single_answer,
        text="Ik voel me een ...",
        information=ParticipantInformationType.gender)
    for i, gender in enumerate(Gender.__iter__(), 1):
        QuestionChoice.create_choice(choice_num=i,
                                     q_id=mc_3.id,
                                     text=gender.value)

    Question.create_question(
        q_type=QuestionType.notes,
        text="Researcher notes",
        information=ParticipantInformationType.researcher_notes)

    # video_question
    Question.create_question(q_type=QuestionType.video, images=[video_male])
Exemplo n.º 25
0
Arquivo: views.py Projeto: topa51/eis
def get_wiki(request):
	lat = request.GET.get('lat', '')
	lon = request.GET.get('lon', '')

	locu_url = 'https://sv.wikipedia.org/w/api.php?action=query&prop=images&list=geosearch&gsradius=1000&gscoord='+lat+'%7C'+lon+'&format=json'
	print(locu_url)
	
	resp = requests.get(locu_url)
	x = resp.json()
	geosearch = x["query"]["geosearch"]

	newgeosearch = []
	for geo in geosearch:
		newGeo = GeoSearch()
		newGeo.pageId = geo["pageid"]
		newGeo.lat = geo["lat"]
		newGeo.lon = geo["lon"]
		newGeo.title = geo["title"]

		imageUrl = 'https://sv.wikipedia.org/w/api.php?action=query&prop=extracts|images&exintro=&explaintext=&format=json&pageids='+str(geo["pageid"])
		respImage = requests.get(imageUrl)
		respoImageJson = respImage.json()
		newGeo.desc = respoImageJson["query"]["pages"][str(newGeo.pageId)]["extract"]

		images = respoImageJson["query"]["pages"][str(newGeo.pageId)]["images"]
		
		if len(images) > 0:
			newImage = Image()
			newImage.title = images[0]["title"]
			
			words = newImage.title.split(":")
			if len(words):
				filename = words[1]
				fileUrl = "https://en.wikipedia.org/w/api.php?action=query&titles=File:"+filename+"&prop=imageinfo&iiprop=url&format=json"
				fileResp = requests.get(fileUrl)
				fileJson = fileResp.json()
				# print(fileUrl)
				try:
					imageInfo = fileJson["query"]["pages"]["33285577"]["imageinfo"][0]["url"]
					# imageInfo = fileJson["query"]["pages"]["-1"]["imageinfo"]["url"]
					print("###################")
					print(fileJson)
					print("*******************")
					print(imageInfo)
					print("###################")
					print("\n")
				except:
					try:
						imageInfo = fileJson["query"]["pages"]["-1"]["imageinfo"][0]["url"]
					except:
						imageInfo = ""
					
					# print(fileUrl)
					# print(fileJson)
					# fileJson["query"]["pages"]["-1"]["imageinfo"]["url"]
				
				newGeo.imageurl = imageInfo

			


		

		newgeosearch.append(json.JSONDecoder().decode(json.dumps(newGeo, default=default)))

	return Response(newgeosearch, status=status.HTTP_200_OK)
Exemplo n.º 26
0
def populate():
    """Method that populates the databse with data"""

    db.session.close()
    db.drop_all()
    db.create_all()

    # User.create_user("admin", "admin")

    c_male = Category.create_category(name="Jongen",
                                      metacategory=Metacategory.gender)
    c_female = Category.create_category(name="Meisje",
                                        metacategory=Metacategory.gender)
    c_programmer = Category.create_category(
        name="Programmeur", metacategory=Metacategory.profession)
    c_writer = Category.create_category(name="Schrijver",
                                        metacategory=Metacategory.profession)
    c_alone = Category.create_category(name="Alleen",
                                       metacategory=Metacategory.social)
    c_together = Category.create_category(name="Samen",
                                          metacategory=Metacategory.social)
    c_gaming = Category.create_category(name="Videospelletjes spelen",
                                        metacategory=Metacategory.hobby)
    c_tennis = Category.create_category(name="Tennissen",
                                        metacategory=Metacategory.hobby)
    c_fruit = Category.create_category(name="Fruit",
                                       metacategory=Metacategory.demo)
    c_vegetable = Category.create_category(name="Groente",
                                           metacategory=Metacategory.demo)

    male_images = [
        'https://res.cloudinary.com/hwutobbxz/image/upload/v1596306179/gender/boy-1_xbqkzy.png',
        'https://res.cloudinary.com/hwutobbxz/image/upload/v1596306179/gender/boy-2_smpd2z.png',
        'https://res.cloudinary.com/hwutobbxz/image/upload/v1596306179/gender/boy-3_r4ytga.png',
        'https://res.cloudinary.com/hwutobbxz/image/upload/v1596306179/gender/boy-4_nwlwjy.png'
    ]

    female_images = [
        'https://res.cloudinary.com/hwutobbxz/image/upload/v1596306179/gender/girl-1_kwkmrz.png',
        'https://res.cloudinary.com/hwutobbxz/image/upload/v1596306179/gender/girl-2_rhniuk.png',
        'https://res.cloudinary.com/hwutobbxz/image/upload/v1596306179/gender/girl-3_xe1a9u.png',
        'https://res.cloudinary.com/hwutobbxz/image/upload/v1596306180/gender/girl-4_xkvjjs.png'
    ]

    programmer_images = [
        ("https://res.cloudinary.com/hwutobbxz/image/upload/v1596306549/profession/programmer-1_ulwehs.png",
         "Website"),
        ("https://res.cloudinary.com/hwutobbxz/image/upload/v1596306550/profession/programmer-2_lof1xf.png",
         "App"),
        ("https://res.cloudinary.com/hwutobbxz/image/upload/v1596306550/profession/programmer-4_pidzdt.png",
         "Call"),
        ("https://res.cloudinary.com/hwutobbxz/image/upload/v1596306550/profession/programmer-3_eg4wkm.png",
         "Streaming")
    ]

    writer_images = [
        ("https://res.cloudinary.com/hwutobbxz/image/upload/v1596306550/profession/writer-1_eztpu9.png",
         "Newspaper"),
        ("https://res.cloudinary.com/hwutobbxz/image/upload/v1596306550/profession/writer-2_rkpv82.png",
         "Papers"),
        ("https://res.cloudinary.com/hwutobbxz/image/upload/v1596306550/profession/writer-3_irllf9.png",
         "Magazine"),
        ("https://res.cloudinary.com/hwutobbxz/image/upload/v1596306551/profession/writer-4_o7htgn.png",
         "Book")
    ]

    gaming_images = [
        ("https://res.cloudinary.com/hwutobbxz/image/upload/v1596306334/hobby/game-1_n9io3s.png",
         "Game Controller"),
        ("https://res.cloudinary.com/hwutobbxz/image/upload/v1596306334/hobby/game-2_aquxcc.png",
         "Game Controller"),
        ("https://res.cloudinary.com/hwutobbxz/image/upload/v1596306334/hobby/game-3_spykmr.png",
         "Game Controller"),
        ("https://res.cloudinary.com/hwutobbxz/image/upload/v1596306334/hobby/game-4_pauwrg.png",
         "Game Controller")
    ]

    tennis_images = [
        ("https://res.cloudinary.com/hwutobbxz/image/upload/v1596306334/hobby/tennis-1_smfocf.png",
         "Net"),
        ("https://res.cloudinary.com/hwutobbxz/image/upload/v1596306334/hobby/tennis-2_nfparh.png",
         "Racket"),
        ("https://res.cloudinary.com/hwutobbxz/image/upload/v1596306334/hobby/tennis-3_ezuh7s.png",
         "Shoe"),
        ("https://res.cloudinary.com/hwutobbxz/image/upload/v1596306334/hobby/tennis-4_wxlwze.png",
         "Ball")
    ]

    alone_images = [
        ("https://res.cloudinary.com/hwutobbxz/image/upload/v1596306654/social/alone-1_hvi8pd.png",
         "Alone"),
        ("https://res.cloudinary.com/hwutobbxz/image/upload/v1596306654/social/alone-2_pitedg.png",
         "Alone"),
        ("https://res.cloudinary.com/hwutobbxz/image/upload/v1596306654/social/alone-3_ez8euu.png",
         "Alone"),
        ("https://res.cloudinary.com/hwutobbxz/image/upload/v1596306654/social/alone-4_adw4ji.png",
         "Alone")
    ]

    together_images = [
        ("https://res.cloudinary.com/hwutobbxz/image/upload/v1596306655/social/together-1_y4i6i4.png",
         "Together"),
        ("https://res.cloudinary.com/hwutobbxz/image/upload/v1596306655/social/together-2_edkl5i.png",
         "Together"),
        ("https://res.cloudinary.com/hwutobbxz/image/upload/v1596306654/social/together-3_dwqijb.png",
         "Together"),
        ("https://res.cloudinary.com/hwutobbxz/image/upload/v1596306654/social/together-4_ai0lmg.png",
         "Together")
    ]

    fruit_images = [
        ("https://res.cloudinary.com/hwutobbxz/image/upload/v1596305962/demo/fruit-1_evzbef.png",
         "Fruit"),
        ("https://res.cloudinary.com/hwutobbxz/image/upload/v1596306043/demo/fruit-2_xfiwal.png",
         "Fruit"),
        ("https://res.cloudinary.com/hwutobbxz/image/upload/v1596306043/demo/fruit-3_cozz4g.png",
         "Fruit"),
        ("https://res.cloudinary.com/hwutobbxz/image/upload/v1596306043/demo/fruit-4_sgdvu9.png",
         "Fruit")
    ]

    vegetable_images = [
        ("https://res.cloudinary.com/hwutobbxz/image/upload/v1596306043/demo/vegetable-1_u4jotx.png",
         "Vegetable"),
        ("https://res.cloudinary.com/hwutobbxz/image/upload/v1596306043/demo/vegetable-2_lwst5m.png",
         "Vegetable"),
        ("https://res.cloudinary.com/hwutobbxz/image/upload/v1596306043/demo/vegetable-3_h079fa.png",
         "Vegetable"),
        ("https://res.cloudinary.com/hwutobbxz/image/upload/v1596306046/demo/vegetable-4_xm9cyn.png",
         "Vegetable")
    ]

    for link in male_images:
        Image.create_image(link=link,
                           description="Man",
                           attribute='man standing',
                           c_id=c_male.id)

    for link in female_images:
        Image.create_image(link=link,
                           description='Girl',
                           attribute='girl standing',
                           c_id=c_female.id)

    create_images(programmer_images, c_programmer.id)
    create_images(writer_images, c_writer.id)
    create_images(gaming_images, c_gaming.id)
    create_images(tennis_images, c_tennis.id)
    create_images(alone_images, c_alone.id)
    create_images(together_images, c_together.id)
    create_images(fruit_images, c_fruit.id)
    create_images(vegetable_images, c_vegetable.id)

    # likert
    ## Demographics 1-5
    create_likert(
        "Ik maak makkelijk vrienden en werk graag samen.",
        'https://res.cloudinary.com/hwutobbxz/video/upload/v1596200541/audio/1_ywbmuk.m4a'
    )
    create_likert(
        "Ik ben gek op computers",
        'https://res.cloudinary.com/hwutobbxz/video/upload/v1596200541/audio/2_qty6fj.m4a'
    )
    create_likert(
        "Ik vind het het leukst om",
        'https://res.cloudinary.com/hwutobbxz/video/upload/v1596200542/audio/3_e3qsyz.m4a'
    )
    create_likert(
        "Als ik dat zou willen, zou ik later programmeur kunnen worden.",
        'https://res.cloudinary.com/hwutobbxz/video/upload/v1596200542/audio/4_yxejoq.m4a'
    )
    create_likert(
        "Ik wil later programmeur worden",
        'https://res.cloudinary.com/hwutobbxz/video/upload/v1596200542/audio/5_r7ghrl.m4a'
    )

    ## 6-10
    create_likert(
        "Wie maakt het makkelijkst vrienden en werkt het liefst samen?",
        'https://res.cloudinary.com/hwutobbxz/video/upload/v1596200541/audio/6_tbouud.m4a'
    )
    create_likert(
        "Wie speelt er het liefste videospelletjes?",
        'https://res.cloudinary.com/hwutobbxz/video/upload/v1596200541/audio/7_wiwrjx.m4a'
    )
    create_likert(
        "Wie speelt er het liefste tennis?",
        'https://res.cloudinary.com/hwutobbxz/video/upload/v1596200541/audio/8_l9xs3q.m4a'
    )
    create_likert(
        "Welk beroep vind jij iets voor meisjes?",
        'https://res.cloudinary.com/hwutobbxz/video/upload/v1596200541/audio/9_zqwjng.m4a'
    )
    create_likert(
        "Welk beroep vind jij iets voor jongens?",
        'https://res.cloudinary.com/hwutobbxz/video/upload/v1596200542/audio/10_qjljyp.m4a'
    )

    ## 11-14
    create_likert(
        "Programmeurs maken makkelijk vrienden en werken graag samen.",
        'https://res.cloudinary.com/hwutobbxz/video/upload/v1596200542/audio/11_g0dvmj.m4a'
    )
    create_likert(
        "Programmeurs zijn gek op computers en hebben weinig andere hobby’s.",
        'https://res.cloudinary.com/hwutobbxz/video/upload/v1596200542/audio/12_nvbyjz.m4a'
    )
    create_likert(
        "Programmeur zijn, dat is een beroep voor",
        'https://res.cloudinary.com/hwutobbxz/video/upload/v1596200542/audio/13_x4cjuw.m4a'
    )
    create_likert("Vraag 14", '')

    #15
    Question.create_question(
        q_type=QuestionType.open_question,
        text="Wat doet een programmeur?",
        audio=
        'https://res.cloudinary.com/hwutobbxz/video/upload/v1596200543/audio/15_kgj5ql.m4a'
    )

    video_female = Image.create_image(link="B3600xjaz3Y",
                                      description='Role model intervention',
                                      attribute='Female')
    video_male = Image.create_image(link="SwISXzPoNUQ",
                                    description='Role model intervention',
                                    attribute='Male')

    # video_question 16
    Question.create_question(q_type=QuestionType.video, images=[video_female])

    # demographics
    ## 17 18 19
    mc_1 = Question.create_question(
        q_type=QuestionType.mc_single_answer,
        text="Hoe oud ben je?",
        information=ParticipantInformationType.age,
        audio=
        'https://res.cloudinary.com/hwutobbxz/video/upload/v1596200542/audio/17_fcwq8f.m4a'
    )
    for i in range(7, 19):
        QuestionChoice.create_choice(choice_num=i - 6,
                                     q_id=mc_1.id,
                                     text=str(i))
    QuestionChoice.create_choice(choice_num=13, q_id=mc_1.id, text="Anders")

    mc_2 = Question.create_question(
        q_type=QuestionType.mc_multiple_answer,
        text=
        "Waar zijn jouw ouders/verzorgers geboren? Er zijn meerdere antwoorden mogelijk.",
        information=ParticipantInformationType.ethnicity,
        audio=
        'https://res.cloudinary.com/hwutobbxz/video/upload/v1596200543/audio/18_etdcmb.m4a'
    )
    for i, ethnicity in enumerate(Ethnicity.__iter__(), 1):
        QuestionChoice.create_choice(choice_num=i,
                                     q_id=mc_2.id,
                                     text=ethnicity.value)

    mc_3 = Question.create_question(
        q_type=QuestionType.mc_single_answer,
        text="Ik voel me een ...",
        information=ParticipantInformationType.gender,
        audio=
        'https://res.cloudinary.com/hwutobbxz/video/upload/v1596200542/audio/19_iiqikw.m4a'
    )
    for i, gender in enumerate(Gender.__iter__(), 1):
        QuestionChoice.create_choice(choice_num=i,
                                     q_id=mc_3.id,
                                     text=gender.value)

    # 20
    Question.create_question(
        q_type=QuestionType.notes,
        text="Researcher notes",
        information=ParticipantInformationType.researcher_notes)

    # video_question 21
    Question.create_question(q_type=QuestionType.video, images=[video_male])

    # experience
    ## 22 23
    mc_4 = Question.create_question(
        q_type=QuestionType.mc_multiple_answer,
        text=
        "Heb je wel eens geprogrammeerd? Er zijn meerdere antwoorden mogelijk",
        information=ParticipantInformationType.experience,
        audio=
        'https://res.cloudinary.com/hwutobbxz/video/upload/v1596200543/audio/22_jlrycd.m4a'
    )
    for i, experience in enumerate(Experience.__iter__(), 1):
        QuestionChoice.create_choice(choice_num=i,
                                     q_id=mc_4.id,
                                     text=experience.value)

    mc_5 = Question.create_question(
        q_type=QuestionType.mc_multiple_answer,
        text="Ken jij een programmeur? Er zijn meerdere antwoorden mogelijk",
        information=ParticipantInformationType.familiar,
        audio=
        'https://res.cloudinary.com/hwutobbxz/video/upload/v1596200543/audio/23_iicnjg.m4a'
    )
    for i, familiar in enumerate(Familiar.__iter__(), 1):
        QuestionChoice.create_choice(choice_num=i,
                                     q_id=mc_5.id,
                                     text=familiar.value)
 def create(self, valideted_data):
     img = Image()
     img.image = valideted_data['image']
     img.save()
     return img
Exemplo n.º 28
0
 def setUp(self):
     self.view = ImageViewSet.as_view()
     self.factory = APIRequestFactory()
     self.correct_data = {'uri': '/some/path/to/image.png'}
     self.error_data = {'random': 'random^2'}
     image = Image(uri='/some/path/to/Image1.png')
     image.save()
     image = Image(uri='/some/path/to/Image2.png')
     image.save()
     image = Image(uri='/some/path/to/Image3.png')
     image.save()
Exemplo n.º 29
0
 def test_default_values(self):
     image = Image()
     self.assertEqual(image.file, '')
Exemplo n.º 30
0
def new_task():

    post_json = request.get_json()
    
    # Kunde anlegen oder über ID selektieren
    customer = None
    cus_id = None
    if hasattr(post_json, "cusID"):
        cus_id = post_json["cusID"]
    else:
        customer = Customer(
            cus_title = post_json["gender"],
            cus_first_name = post_json["firstName"],
            cus_last_name = post_json["lastName"],
            cus_email = post_json["email"],
            cus_phone_no = post_json["prefixNumber"] + " " + post_json["phone"],
            cus_street = post_json["street"],
            cus_house_number = post_json["houseNumber"],
            cus_post_code = post_json["postCode"]
        )
        db.session.add(customer) # pylint: disable=maybe-no-member
        db.session.commit() # pylint: disable=maybe-no-member
        cus_id = customer.cus_id

    # Gerät anlegen oder über ID selektieren
    device = None
    dev_id = None
    if hasattr(post_json, "devID"):
        dev_id = post_json["devID"]
    else:
        device = Device(
            dev_name = post_json["devName"],
            dev_model = post_json["devModel"],
            dev_category = post_json["categoryName"],
            dev_electronic_mechanical_type = post_json["electricalMechanical"],
            dev_mnf_name = post_json["manufacturerName"],
        )
        db.session.add(device) # pylint: disable=maybe-no-member
        db.session.commit() # pylint: disable=maybe-no-member
        dev_id = device.dev_id

    new_task = Task(
        tsk_fault_description = post_json["faultDescription"],
        tsk_creation_date = datetime.now(),
        tsk_cus_id = cus_id,
        tsk_dev_id = dev_id,
        tsk_state = "new",
        tsk_next_step = "not_set",
    )

    db.session.add(new_task) # pylint: disable=maybe-no-member
    db.session.commit() # pylint: disable=maybe-no-member

    tk = generate_token("customer", new_task.tsk_id)

    # QR-Code generieren
    image_file = generate_qrcode_label("customer", new_task.tsk_id, tk)

    # Files anlegen
    files = post_json["files"]
    for filename in files:
        new_file = Image(img_filename=filename, img_tsk_id=new_task.tsk_id)
        db.session.add(new_file) # pylint: disable=maybe-no-member
        db.session.commit() # pylint: disable=maybe-no-member

    # Token als neuer Token in der Session speichern.
    session['NEW_TOKEN'] = tk

    return {'tsk_id':new_task.tsk_id, 'tsk_token': tk}