Клуб Фоток

ноябрь 2011
Приложение Яндекс.Фотки для iPhone теперь работает с iOS5
1 ноября 2011, 11:59

Хорошая новость, друзья: мобильное приложение Яндекс.Фотки для iPhone с сегодняшнего дня совместимо с iOS5. Если у вас установлена одна из предыдущих версий iOS, не переживайте, наше приложение будет работать корректно на вашем iPhone.

Скачать приложение можно из App Store.

Фотографируйте и загружайте свежие снимки на Яндекс.Фотки!

32 комментария
программы и плагины,мобильные яндекс.фотки
Конкурсные фото
1 ноября 2011, 15:36

В раздере популярное у автора - Конкурсные фото предлагаю сделать так, что бы вместе с названием конкурса, в котором участвовала фотография, указывалось место. Бывает, что у пользователей очень много фотографий, участвовавших в конкурсах, и удобно будет не открывать каждое по отдельности (особенно тем, у кого медленный интернет), а сразу видеть место, которое заняли фотографии

26 комментариев
фичреквест,конкурсы
Мои популярные фото...
15 ноября 2011, 16:58

Я много участвую в различных клубах и делаю для них оформление титульных страниц. Все отделочные полуфабрикаты - кнопки, рамки, разделители и т.д. я по первости грузил в свой альбом. Теперь, когда я пытаюсь просмотреть популярное у себя, то вместо рейтинга популярности моих фотографий вижу "парад" кнопок из различных клубов. Так как на мои меню и кнопки ссылаются сейчас другие люди, то перенести их на другой рессурс я не могу. Можно ли сделать так, чтоб изображение можно было исключить из рейтинга популярных?

22 комментария
фичреквест,настройки
Python-скрипт для скачивания всех фоток или отдельных альбомов пользователя
16 ноября 2011, 12:01

В отличие от публиковавшегося ранее скрипта мой вариант позволяет выбирать между скачиванием всех альбомов, явным заданием желаемого их списка или интерактивным режимом. Можно использовать заголовки фоток в качестве имён файлов и даты съёмки/публикации — в качестве дат изменения файлов.

 

Для запуска требуется Python 3.2. Для вывода справки используйте параметр -h (или --help).

 



#!/usr/bin/env python

import os
import time
import re
import urllib.request
import json
import argparse

user_url = "http://api-fotki.yandex.ru/api/users/{}/albums/?format=json"
album_url = "http://api-fotki.yandex.ru/api/users/{}/album/{}/photos/?format=json"

CREATED = 1
PUBLISHED = 2

def grab(user_id, album_id, dest, use_title, use_date):
    url = album_url.format(user_id, album_id)
    album = json.loads(urllib.request.urlopen(url).read().decode("utf-8"))
    if not "entries" in album:
        return
    album_dir = os.path.join(dest, album["title"])
    if not os.path.isdir(album_dir):
        os.makedirs(album_dir)
    print('Downloading album "{}" (id: {})...'.format(album["title"], album_id))
    for image in album["entries"]:
        if use_date == CREATED and "created" in image:
            t = time.mktime(time.strptime(image["created"], "%Y-%m-%dT%H:%M:%SZ"))
        elif use_date == PUBLISHED:
            t = time.mktime(time.strptime(image["published"], "%Y-%m-%dT%H:%M:%SZ"))
        else:
            t = time.time()
        if use_title and image["title"].lower() not in ["", ".jpg"]:
            filename = os.path.join(album_dir, image["title"])
            if not image["title"].lower().endswith(".jpg"):
                filename += ".jpg"
            if os.path.exists(filename):
                print('"{}" already exists. Skipped.'.format(filename))
                continue
            try:
                f = open(filename, mode="wb")
                f.write(urllib.request.urlopen(image["img"]["orig"]["href"]).read())
                f.close()
                os.utime(filename, (time.time(), t))
                continue
            except IOError:
                pass
        filename = os.path.join(album_dir, re.search("\d+$", image["id"]).group() + ".jpg")
        if os.path.exists(filename):
            print('"{}" already exists. Skipped.'.format(filename))
            continue
        try:
            f = open(filename, mode="wb")
            f.write(urllib.request.urlopen(image["img"]["orig"]["href"]).read())
            f.close()
            os.utime(filename, (time.time(), t))
        except IOError:
            print('"{}" cannot be saved. Skiped.'.format(filename))

if __name__ == "__main__":
    parser = argparse.ArgumentParser(description="Downloads albums from Yandex.Fotki. Skips files that already exist.")
    parser.add_argument("user")
    parser.add_argument("-a", "--albums", nargs="*", metavar="ID", help="list of album ids to proceed (download all if empty, prompt for every album if the argument is omitted)")
    parser.add_argument("-d", "--dest", default="", metavar="DIR", help="output directory")
    parser.add_argument("-t", "--use-title", action="store_true", help="use title as file name (if possible)")
    date_group = parser.add_mutually_exclusive_group()
    date_group.add_argument("-c", "--use-cdate", dest="use_date", action="store_const", const=CREATED, help="use creation date as modification date (if available)")
    date_group.add_argument("-p", "--use-pdate", dest="use_date", action="store_const", const=PUBLISHED, help="use publishing date as modification date")
    args = parser.parse_args()

    url = user_url.format(args.user)
    user = json.loads(urllib.request.urlopen(url).read().decode("utf-8"))
    if "entries" in user:
        for album in user["entries"]:
            if album["imageCount"] == 0:
                continue
            album_id = re.search("\d+$", album["id"]).group()
            if (args.albums is None and input('Download album "{}" (id: {})? '.format(album["title"], album_id)) in ["y", "Y"]) or (args.albums is not None and (args.albums == [] or album_id in args.albums)):
                grab(args.user, album_id, args.dest, args.use_title, args.use_date)
34 комментария
скачать альбом,альбомы
Подписка на почтовую рассылку информации о конкурсах
18 ноября 2011, 10:56

Организуйте почтовую рассылку информации о конкурсах и подписку на неё. Ибо хочется быть в курсе.

А именно: начался новый конкурс; завершилась подача заявок - началось голосование; голосование окончено - победитель такой-то - ваша фотка [если таковая принимала участие] заняла такое-то место.

25 комментариев
уведомления,конкурсы
Нумерация фотографий в коде для вставки
21 ноября 2011, 17:37
Внимание: вышло обновление программы! Версия 1.3

Написал небольшую программку для обработки кода для вставки в блог. Цель простая - в код добавляется нумерация фотографий и выдается новый код. Так же пригодится тем, кто пишет в ЖЖ через Semagic посты со множеством картинок, вставляемых с компьютера.


Вкладка «Код с Яндекса».

В верхнее поле необходимо вставить полученный «Код для вставки на сайт или в блог». Сразу после вставки начнется скачивание миниатюр фотографий. После окончания, миниатюры появиятся в списке и их можно сортировать как хочется. Также к фото можно добавлять описание, которое будет вставлено перед ним.

Дополнительные опции:

  • Нумерация фото: здесь все понятно - все фотографии нумеруются
  • Клик на фото открывает его страницу: если опция включена, то клик на фото ведет к открытию фотографии на Яндекс.Фотках, где можно посмотреть ее описание, комментарии и т.д.
  • Перенести «Фотографии в альбоме...» в конец: фраза с ссылкой на альбом переносится в конец поста, после фотографий.

Также можно убрать часть фотографий под кат, для этого нужно поставить соответствующую галочку и указать, сколько фото оставить НАД катом. Эти фото помечаются в списке зеленым цветом. Текст ката может быть создан автоматически, по числу фото под катом. Т.е. если под катом оказывается 10 фото, то текст ката будет «+10». При желании можно задать свой текст.

После сортировки и установки опций необходимо нажать кнопку Создать. Создастся новый код, который автоматически будет скопирован в буфер обмена.



Вкладка «Локальные фото».

Тем, кто пользуется Semagic, известно, что чтобы вставить там большое количество картинок, нужно долго и нудно указывать их по одной, делая много лишних движений, либо перетянуть в окно фото из Проводника. Но при этом они вставляются «слитно», без пробелов, разделять придется вручную. Для облегчения этой рутины и предназначена эта вкладка. Сначала необходимо выбрать папку, содержащую фотографии, предназначенные для поста.  Вложенные папки не учитываются.

После выбора папки, она сканируется и все найденные файлы появляются в виде превьюшек в списке справа.

К дополнительным параметрам относится возможность нумеровать фото.

После задания порядка фотографий и параметров поста, нажимаем кнопку Создать и получаем готовый код. После создания, код автоматически копируется в буфер обмена и его сразу можно вставлять в Semagic.

В Semagic код вставляется в режиме HTML, в который можно перейти, нажав кнопку в правом нижнем углу окна:



Скачать программу можно здесь, работает без установки. Вирусов нет, гарантирую как автор


31 комментарий
код для вставки,интеграция,программы и плагины
Изменение в системе оценок
23 ноября 2011, 17:52

Как вы думаете, может стоит спрятать текущий рейтинг фотографии от залогиненых пользователей на время пребывания этой фотографии в ленте, сразу после публикации (это около 2х дней?)

Если свежей фотографией делятся с внешними - оценка будет видна, а если с залогинеными - они ее все равно оценивают (или оценят - не сложно ведь).

Видимые плюсы:

- более объективная оценка фотографии (бывает что за первые 50 просмотров ставят 5 оценок а за следущие 500 ни одной, потому что 5 уже стоит)

- по опыту баш.орг, будет больше оценок (пользователям это безумно нравится)

Видимые минусы:

- инфляция оценок может быть неприятна некоторым старожилам, которые сражались за свои звездочки

78 комментариев
голосование звездами
О размере фоток - маленькие не должны быть в новых и интересных и ТОПах
30 ноября 2011, 13:25

Дело каждого - размер фоток, которые он вывешивает.

Но если кто-то вывешивет фото размером с марку - это значит он не хочет им делиться, и значит не заслуживает никаких оценок.

Сайт предлагает заказать печать фоток - на это есть физическое ограничение лабораторий.

павел в ссылке http://clubs.ya.ru/photo/replies.xml?item_no=25360 дает размер фоток

15 x 10 см = 300 DPI = 1772 x 1182

Наверно где-то в этих размерах и должна начинаться отсечка допуска в ТОПы.

51 комментарий
популярные,конкурсы,новые интересные,размеры