Czy istnieje sposób, aby wyświetlić wszystkie moje posty na Tumblrze, które nie są ulubionymi?

11

Mam ponad 7000 postów na moim koncie Tumblr. Zdecydowana większość z nich to „Ulubione”, ale reszta to posty (obrazy lub teksty), które przesłałem. Czy istnieje sposób, aby jakoś wyświetlić te konkretne posty? Jednym ze sposobów byłoby, gdyby użyłem określonego tagu do tych postów, ale nie zrobiłem tego. Aby sformułować moje pytanie: Czy istnieje sposób, aby wyświetlić wszystkie dostępne posty Tumblr, których źródłem było moje konto?

Awentyn
źródło

Odpowiedzi:

4

Jestem autorem skryptu, do którego link znajduje się w odpowiedzi @ oneqeightyfour. Więc chociaż jestem trochę spóźniony na imprezę, oto zmodyfikowana wersja skryptu, której możesz użyć.

Znalazłem witrynę , w której można to zrobić jednym kliknięciem , ale nie udało mi się tego uruchomić. Możesz najpierw spróbować?


Krok 1: Uzyskaj klucz API Tumblr

Korzystanie z interfejsu API jest znacznie prostsze, z punktu widzenia programowania, niż próba zeskrobania witryny. Ponadto warunki Tumblr marszczą brwi, gdy masowo uzyskujesz dostęp do danych bez przechodzenia przez interfejs API.

Aby uzyskać klucz API:

  1. Upewnij się, że jesteś zalogowany do Tumblr
  2. Przejdź do strony rejestracji OAuth .
  3. Wybierz „Zarejestruj aplikację” i użyj następujących informacji:

    • Nazwa aplikacji: Znajdź wszystkie moje oryginalne posty
    • Opis aplikacji: Znajdź wszystkie oryginalne posty na stronie; czyli posty, które nie są blogami
    • Domyślny adres zwrotny: /
  4. Spowoduje to powrót do pierwszej strony. Zostanie wyświetlony klucz klienta OAuth . Skopiuj to - wkrótce będziemy z niego korzystać.

Krok 2: Skonfiguruj skrypt

To jest lekko zmodyfikowana wersja mojego skryptu. Skopiuj i wklej to do edytora tekstu (np. TextEdit lub Notatnik) i zapisz jako originals.py.

Powinieneś zastąpić HOSTNAMEzmienną adresem URL swojego bloga, a API_KEYzmienną kluczem klienta OAuth odzyskanym w kroku 1.

#!/usr/bin/env python

import json
try:
    from urllib.request import urlopen
except ImportError:
    from urllib2 import urlopen

HOSTNAME = "alexwlchan.tumblr.com"
API_KEY = "abcdefg"

BASE_URL = (
    "http://api.tumblr.com/v2/blog/{hostname}/"
    "posts?api_key={key}&reblog_info=true"
) .format(hostname=HOSTNAME,key=API_KEY)


def api_response(url):
    req = urlopen(url)
    return json.loads(req.read())


jsonresponse = api_response(BASE_URL)
post_count = jsonresponse["response"]["total_posts"]

for count in range(0, post_count, 20):
    jsonresponse = api_response("{url}&offset={count}".format(
        url=BASE_URL,
        count=count))

    for post in jsonresponse["response"]["posts"]:
        if "reblogged_from_name" not in post:
            print(post["post_url"])

print("All finished!")

Krok 3: Uruchom skrypt

Jest to skrypt w języku Python, odpowiedni dla języka Python 2 lub 3. Jeśli korzystasz z Google, powinieneś być w stanie znaleźć instrukcje dotyczące uruchamiania skryptów w języku Python dla wybranego systemu operacyjnego.

Skrypt wydrukuje listę adresów URL, na których nie uzyskał żadnych informacji z interfejsu API Tumblr. W moich (bardzo krótkich) testach zdawało się, że wychwyciłem garść adresów URL, które były faktycznie ulubionymi - nie kopałem, żeby dowiedzieć się, dlaczego tak jest.

Baw się dobrze! :-)

alexwlchan
źródło
Dziękuję bardzo, choć to późna odpowiedź :)
Awentyn
3

Ktoś w Internecie napisał skrypt na ten temat i można go znaleźć na Github . Będziesz musiał zmienić parametry nazwy hosta i klucza API na własną nazwę hosta tumblr i odpowiednio dodać własny klucz API.

Twoja nazwa hosta to coś w rodzaju „x.tumblr.com” (pamiętaj, aby owinąć ją znakami „”).

Następnie musisz uzyskać klucz API od Tumblr. Aby to zrobić:

  1. Upewnij się, że jesteś zalogowany do Tumblr.
  2. Uzyskaj dostęp do strony rejestracji OAuth .
  3. Kliknij Zarejestruj aplikację z następującymi szczegółami:

    • Nazwa aplikacji: Untagged Post Finder
    • Opis: Znajduje nieoznaczone posty
    • Domyślny adres zwrotny: /
  4. Nastąpi powrót do poprzedniej strony i przekazanie klucza klienta.

  5. Skopiuj wklej klucz, który dostałeś do skryptu, i uruchom go.

Jeśli nie jesteś zaznajomiony ze skryptami i kodowaniem, możesz alternatywnie skorzystać z jego witryny „jednego kliknięcia” i po prostu podać adres URL swojego Tumblra.

oneqeightyfour
źródło
1
To najbliższa jak dotąd odpowiedź, ale nie do końca istotna. To oprogramowanie szuka postów, które nie mają tagu. Chociaż jest to przydatne, nie jest prawdą, że moje posty nie miałyby tagów. W moim przykładzie wspomniałem, że byłoby bardzo łatwo, gdybym użył określonego tagu do otagowania wszystkich moich oryginalnych postów.
Awentyn
Właśnie przyszło mi do głowy, że absolutnie przeoczyłem i wykluczyłem fakt, że niektóre z twoich postów źródłowych mogły zostać otagowane, co sprawi, że to podejście nie będzie miało znaczenia. Wcale nie jestem zaznajomiony z kodowaniem, ale jeśli tak, to możesz spojrzeć na zmianę liczb całkowitych od wyboru nieoznaczonych postów źródłowych do otagowanych postów źródłowych?
oneqeightyfour
Tak, właściwie o tym myślałem. Może dostosuję kod. Niemniej jednak jest to najbliższa jak dotąd odpowiedź.
Awentyn