Skip to main content

Social-ethosa

A Python library that uses requests
Documentation in other languages

Changelog

Examples:

Get started

Installation: pip install --upgrade social-ethosa
Import:

from social_ethosa import *

Vkcom

vk = Vk(token="Your token is here", group_id=12345, debug=True, lang="en")
# the group_id parameter should be used if you are going to log in through a group.
# In this example, we will use group authorization.

@vk.on_message_new
# This decorator is an event handler that executes the function passed to it on a new message
# The decorator's name is taken from the official names, but with the prefix " on_"
# https://vk.com/dev/groups_events
def getMessage(message):
  text = message.text
  peer_id = message.peer_id
  from_id = message.from_id
  attachments = message.attachments

using the file Uploader:

vk.uploader.getUploadUrl("message_photo") # getting a link to upload files
# you can also pass other arguments (argument=value)
# to get the rest of the UploadUrl names, use the function
# uploader.getAllTypes

upload files:

response = vk.uploader.uploadFile("path") # you can also pass other arguments (argument=value)

Some audio methods are also available in my library:

login = "89007003535"
password = "qwertyuiop"

audio = Audio(login=login, password=password, debug=1)
audios = audio.get()
# Since the audio methods are not available in the official API, I had to make a parser of the site

Yandex api

Using Yandex api:

TOKEN = "translate token"
yt = YTranslator(token=TOKEN)
text = "Пайтон - хороший язык программирования"
response = yt.translate(text=text, lang="en") # Text translation
print(response)

Trace moe

Using the TraceMoe api:

tracemoe = TraceMoe() # initialization for future use
# In directory with script there is screenshot from anime " a. png"
response = tracemoe.search("a.png", False, 1)
# param 1 - path to image or image url
# param 2 - True, if param 1 is link
# param 3 - filter search

Image did not load

If the anime is found, you should get a video preview of the found moment:

video = tracemoe.getVideo(response, mute=0) # The mute parameter must be 1 if you want to get video without sound
tracemoe.writeFile("file.mp4", video)
# param 1 is a path to write file
# param 2 is a video received by the get Video method

BotWrapper

In the library there is a wrapper for bots!
Initialization:

bw = BotWrapper()

Getting a random date

date = bw.randomDate(fromYear="2001", toYear="3001")
# Returned: string
# The fromYear and toYear parameters are optional

BetterBotBase

This class uses pickle to maintain the database.
Let's initialize this class.

bbs = BetterBotBase("users folder", "dat")
# The first argument is the name of the folder where users will be stored
# the second argument is the Postfix of the files, in our case the files will look like this:
# 123123123.dat

BetterBotBase can also be used with Vkcom:

@vk.on_message_new
def getNewMessage(message):
  from_id = message.from_id
  if from_id > 0:
    user = bbs.autoInstall(from_id, vk)
# autoInstall automatically creates or loads users and returns the user for further action with it.

BotWrapper can also be used to interact with BetterBotBase!

text = bw.answerPattern("Hello, <name>, your money is <money>!", user)
# the answer Pattern method automatically substitutes variables from user,
# thus making it a little easier to format the string

You can define your own templates to the database!

# right after BetterBotBase announcement
bbs.addPattern("countMessages", 0)
# the first argument is the variable name
# the second argument is the default value of the variable (when creating a user)

You created a template, but it was not added to the old users? not a problem!

bbs.addNewVariable("countMessages", 0)
# this method works the same as addPattern, but with older users

ThisPerson api

Initialization is quite simple

person = ThisPerson()

In the class now only 3 methods to retrieve non-existent people/cats/waifu

rperson = person.getRandomPerson()
rcat = person.getRandomCat()
rwaifu = person.getRandomWaifu()

after receiving the generated photo, it should be written to a file.

person.writeFile("person.png", rperson)
person.writeFile("cat.png", rcat)
person.writeFile("waifu.png", rwaifu)

Yummyanime club

There are few methods here, as I have not found an official API. Let's get started.

ym = YummyAnime()
ym = YummyAnime(login="yourmail@gmail.com", password="iampassword")
# You can log in to your account if you need to

Getting random anime

randomAnime = ym.getRandomAnime()
print(dir(randomAnime))
print(randomAnime)

You can also get a list of anime updates

updates = ym.getUpdates()
anime = updates[0].open() # You will get the same object that the getRandomAnime() method returns
print(updates)
print(anime)

And also you can view your profile

profile = ym.getProfile()
print(profile)

bloggercom api

Module to work with blogger.com
Initialization:

blogger = Blogger(apiKey="Your api key")

get blog by id:

blog = blogger.blogs.get(123123)
print(blog["name"]) # You can use the resulting object as a dictionary
print(blog.name) # or as an object :/
print(blog)

get blog by url:

blog = blogger.blogs.getByUrl("https://meethosa.blogspot.com")

get posts by blog id

posts = blogger.posts.get(123123)

get pages by blog id

posts = blogger.pages.get(123123)

eMath

I decided that very few people will need this module, so importing it separately from the main one:

from social_ethosa.eMath import *

Point

You can create an N-dimensional point:

point = Point(0, 0, 0)
point1 = Point(4, 2, 3)

And also you can find the Euclidean distance between them:

distance = point.euclideanDistance(point1)
print(distance)

Matrix

Also this module has a Matrix class

matrix = Matrix(3, 3) # Creating a 3x3 matrix
matrix1 = Matrix([[1, 2, 3],
                  [4, 5, 6],
                  [7, 8, 9]]) # Creating a 3x3 matrix

You can transpose the matrix

matrix1.transpose()
# 1 4 7
# 2 5 8
# 3 6 9

And multiply the matrix by the number

matrix1 *= 3
# 3 12 21
# 6 15 24
# 9 18 27

The addition of two matrices is also possible

matrix2 = Matrix([[1, 2, 3],
                  [4, 5, 6],
                  [7, 8, 9]])
matrix1 += matrix2
# 4 14 24
# 10 20 30
# 16 26 36

Matrix multiplication? No problem!

matrix = Matrix([[1, 2, 3],
                [4, 5, 6]])
matrix1 = Matrix([[1, 2],
                [3, 4],
                [5, 6]])
matrix *= matrix1
# 22, 28 
# 49, 64

matrix = Matrix([[1, 2],
                [3, 4]])
matrix1 = Matrix([[1, 2],
                [3, 4]])
matrix *= matrix1
# 7, 10
# 15, 22

You can also clear or fill the matrix with any numbers!

matrix = Matrix([[1, 2],
                [3, 4]])
# 1 2
# 3 4

matrix.clear()
# 0 0
# 0 0

matrix.fill()
# 0 0
# 0 0

matrix.fill(7)
# 7 7
# 7 7

you can also edit individual parts of the matrix

matrix.setAt(0, 0, 8)
# 8 7
# 7 7

a = matrix.getAt(0, 0)
# 7

And also you can mirror the matrix:

matrix.flip()
# 7 7
# 7 8

ArithmeticSequence

There are many ways to initialize an arithmetic sequence.

ars = ArithmeticSequence(0, 2)
ars = ArithmeticSequence([0, 2])
ars.getElem(1) # 2
ars.getElem(0) # 0
ars.getElem(4) # 8

You can also get the sum of the elements

ars = ArithmeticSequence(5, 5)
ars.getSum(0) # 5
ars.getSum(2) # 15

GeometricSequence

There are many ways to initialize an geometric sequence.

ars = GeometricSequence(1, 2)
ars = GeometricSequence([1, 2])
ars.getElem(1) # 2
ars.getElem(0) # 1
ars.getElem(4) # 16

You can also get the sum of the elements

ars = ArithmeticSequence(1, 2)
ars.getSum(0) # 1
ars.getSum(2) # 7
ars.getSum(1) # 3

utils

This module can make your life much easier.

def smthDef(arg1, arg2, **kwargs):
    print(getValue(kwargs, "argument", None))
# getValue - abbreviation of kwargs["argument"] if "argument" in kwargs else None

downloadFileFromUrl("url", "path to file")
# this method downloads the file from the link and places it in the specified path.

updateLibrary("0.2.42")
# this method automatically updates the library to the specified version.
# if no version is specified, the library is updated to the latest version.

lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
print(splitList(lst, 2))
# [[1, 2], [3, 4], [5, 6], [7, 8], [9, 0]]

lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
print(splitList(lst, 3))
# [[1, 2, 3], [4, 5, 6], [7, 8, 9], [0]]
# the splitList method tries to divide the passed list into equal parts

timer = Timer()
# Timer-class for calling certain functions after a certain time.

@timer.after(1000)
# after method run this function after 1000 milliseconds
def hi():
  print("hello world")

@timer.afterEvery(100, 1000)
# the after Every method starts this function after 100 milliseconds and will call it every subsequent 1000 milliseconds
def hello(): print("hello")

timer.cancel()
# when the timer method is called.cancel will automatically close all running timers of this timer

extra

This module, like eMath, must be imported separately

from social_ethosa.extra import *

EList:

lst1 = EList() # create []
lst2 = EList("string") # create ["s", "t", "r", "i", "n", "g"]
lst3 = EList(1, 2, 3) # create [1, 2, 3]
lst4 = EList([1, 2, 3]) # create [1, 2, 3]

all the methods of normal lists are present in this, however there are a few features here

lst1 += 1 # [1]
lst1 += [1, 2] # [1, 1, 2]
lst1 += EList(3, 4) # [1, 1, 2, 3, 4]
lst1.clear() # []
lst1 += [1, 2, 3] # [1, 2, 3]
lst1.split(1) # [[1], [2], [3]]
lst1.clear()
lst1 += [1, 2, 3]
lst1[2] # 3
lst1[3] # error
lst1[3] = 4 # working!
lst1 # [1, 2, 3, 4]
lst1.len() == len(lst1) # True
lst1.sum() == sum(lst1) # True
lst1.standartItem(0)
lst1[8] = 1
lst1 # [1, 2, 3, 4, 0, 0, 0, 0, 1]

There are also non-standard methods, for example:

lst1.binarySearch(1) # 0
lst1.interpolationSearch(1) # 0
lst1.sortA(EList.GNOME_SORT) # [0, 0, 0, 0, 1, 1, 2, 3, 4]

LogManager

LogManager("filename.txt", "text for log")
# or
with LogManager("filename.txt") as log:
  log.write("text for log")

MarkovChains

mchains = MarkovChains()
mchains.addChain("name", "hello")
mchains.addChain("hello", "name")
mchains.generateSequence(5, auth="name")
# ["hello", "name", "hello", "name", "hello"]

mchains = MarkovChains()
mchains.execute("name => hello => c <=> ban => name => c")
mchains.generateSequence(5) # ['c', 'ban', 'name', 'hello', 'c']

AMarkov

Also you can easily use Markov algorithm

m = AMarkov()
m.addRule("1", "0|")
m.addRule("|0", "||0")
m.addRule("0", "")
m.compile("101") # |||||

EQueue

There is an queue here

queue = EQueue()
for i in range(10):
    queue.add(i)
queue.len() # 10
test = ", ".join("%s" % queue.getRandom() for i in range(queue.len()))
queue.len() # 0
test # 8, 1, 9, 0, 6, 4, 2, 5, 3, 7

Metadata

Release files for social-ethosa 0.6.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for social-ethosa 0.6.4
File Size Uploaded Provenance
social-ethosa-0.6.4.tar.gz 47.3 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for social-ethosa 0.6.4
File Interpreter ABI Platform
social_ethosa-0.6.4-py3-none-any.whl Python 3 none any Details

Total release size: 105.8 kB

Release files / social-ethosa-0.6.4.tar.gz

Download URL social-ethosa-0.6.4.tar.gz
Size 47.3 kB
Tags Source
SHA-256 checksum
How to use checksums
a8448a639938117a3c647b3401d5718292c8b7264a56dd5e55c3155f491a1624
BLAKE2b-256 checksum
How to use checksums
e3de3ad1fcf5e1d19777c886140929bde0796766f81a817990c4a679e635f9fa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.3

Release files / social_ethosa-0.6.4-py3-none-any.whl

Download URL social_ethosa-0.6.4-py3-none-any.whl
Size 58.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
572ded790799b50c5b009c96335c4337bd576075b3f9af8a2026b8d311fa36f3
BLAKE2b-256 checksum
How to use checksums
2489fa1b2de1ac5cac77ee96afe917ddaf2b8e4381c796734a0d494acc5e6428
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.3

Security for social-ethosa 0.6.4

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Release history Release notifications | RSS feed

This release

0.6.4 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page