
Recherche avancée
Autres articles (84)
-
Creating farms of unique websites
13 avril 2011, parMediaSPIP platforms can be installed as a farm, with a single "core" hosted on a dedicated server and used by multiple websites.
This allows (among other things) : implementation costs to be shared between several different projects / individuals rapid deployment of multiple unique sites creation of groups of like-minded sites, making it possible to browse media in a more controlled and selective environment than the major "open" (...) -
Le profil des utilisateurs
12 avril 2011, parChaque utilisateur dispose d’une page de profil lui permettant de modifier ses informations personnelle. Dans le menu de haut de page par défaut, un élément de menu est automatiquement créé à l’initialisation de MediaSPIP, visible uniquement si le visiteur est identifié sur le site.
L’utilisateur a accès à la modification de profil depuis sa page auteur, un lien dans la navigation "Modifier votre profil" est (...) -
Configurer la prise en compte des langues
15 novembre 2010, parAccéder à la configuration et ajouter des langues prises en compte
Afin de configurer la prise en compte de nouvelles langues, il est nécessaire de se rendre dans la partie "Administrer" du site.
De là, dans le menu de navigation, vous pouvez accéder à une partie "Gestion des langues" permettant d’activer la prise en compte de nouvelles langues.
Chaque nouvelle langue ajoutée reste désactivable tant qu’aucun objet n’est créé dans cette langue. Dans ce cas, elle devient grisée dans la configuration et (...)
Sur d’autres sites (9293)
-
Neutral net or neutered
4 juin 2013, par Mans — Law and libertyIn recent weeks, a number of high-profile events, in the UK and elsewhere, have been quickly seized upon to promote a variety of schemes for monitoring or filtering Internet access. These proposals, despite their good intentions of protecting children or fighting terrorism, pose a serious threat to fundamental liberties. Although at a glance the ideas may seem like a reasonable price to pay for the prevention of some truly hideous crimes, there is more than first meets the eye. Internet regulation in any form whatsoever is the thin end of a wedge at whose other end we find severely restricted freedom of expression of the kind usually associated with oppressive dictatorships. Where the Internet was once a novelty, it now forms an integrated part of modern society ; regulating the Internet means regulating our lives.
Terrorism
Following the brutal murder of British soldier Lee Rigby in Woolwich, attempts were made in the UK to revive the controversial Communications Data Bill, also dubbed the snooper’s charter. The bill would give police and security services unfettered access to details (excluding content) of all digital communication in the UK without needing so much as a warrant.
The powers afforded by the snooper’s charter would, the argument goes, enable police to prevent crimes such as the one witnessed in Woolwich. True or not, the proposal would, if implemented, also bring about infrastructure for snooping on anyone at any time for any purpose. Once available, the temptation may become strong to extend, little by little, the legal use of these abilities to cover ever more everyday activities, all in the name of crime prevention, of course.
In the emotional aftermath of a gruesome act, anything with the promise of preventing it happening again may seem like a good idea. At times like these it is important, more than ever, to remain rational and carefully consider all the potential consequences of legislation, not only the intended ones.
Hate speech
Hand in hand with terrorism goes hate speech, preachings designed to inspire violence against people of some singled-out nation, race, or other group. Naturally, hate speech is often to be found on the Internet, where it can reach large audiences while the author remains relatively protected. Naturally, we would prefer for it not to exist.
To fulfil the utopian desire of a clean Internet, some advocate mandatory filtering by Internet service providers and search engines to remove this unwanted content. Exactly how such censoring might be implemented is however rarely dwelt upon, much less the consequences inadvertent blocking of innocent material might have.
Pornography
Another common target of calls for filtering is pornography. While few object to the blocking of child pornography, at least in principle, the debate runs hotter when it comes to the legal variety. Pornography, it is claimed, promotes violence towards women and is immoral or generally offensive. As such it ought to be blocked in the name of the greater good.
The conviction last week of paedophile Mark Bridger for the abduction and murder of five-year-old April Jones renewed the debate about filtering of pornography in the UK ; his laptop was found to contain child pornography. John Carr of the UK government’s Council on Child Internet Safety went so far as suggesting a default blocking of all pornography, access being granted to an Internet user only once he or she had registered with some unspecified entity. Registering people wishing only to access perfectly legal material is not something we do in a democracy.
The reality is that Google and other major search engines already remove illegal images from search results and report them to the appropriate authorities. In the UK, the Internet Watch Foundation, a non-government organisation, maintains a blacklist of what it deems ‘potentially criminal’ content, and many Internet service providers block access based on this list.
While well-intentioned, the IWF and its blacklist should raise some concerns. Firstly, a vigilante organisation operating in secret and with no government oversight acting as the nation’s morality police has serious implications for freedom of speech. Secondly, the blocks imposed are sometimes more far-reaching than intended. In one incident, an attempt to block the cover image of the Scorpions album Virgin Killer hosted by Wikipedia (in itself a dubious decision) rendered the entire related article inaccessible as well as interfered with editing.
Net neutrality
Content filtering, or more precisely the lack thereof, is central to the concept of net neutrality. Usually discussed in the context of Internet service providers, this is the principle that the user should have equal, unfiltered access to all content. As a consequence, ISPs should not be held responsible for the content they deliver. Compare this to how the postal system works.
The current debate shows that the principle of net neutrality is important not only at the ISP level, but should also include providers of essential services on the Internet. This means search engines should not be responsible for or be required to filter results, email hosts should not be required to scan users’ messages, and so on. No mandatory censoring can be effective without infringing the essential liberties of freedom of speech and press.
Social networks operate in a less well-defined space. They are clearly not part of the essential Internet infrastructure, and they require that users sign up and agree to their terms and conditions. Because of this, they can include restrictions that would be unacceptable for the Internet as a whole. At the same time, social networks are growing in importance as means of communication between people, and as such they have a moral obligation to act fairly and apply their rules in a transparent manner.
Facebook was recently under fire, accused of not taking sufficient measures to curb ‘hate speech,’ particularly against women. Eventually they pledged to review their policies and methods, and reducing the proliferation of such content will surely make the web a better place. Nevertheless, one must ask how Facebook (or another social network) might react to similar pressure from, say, a religious group demanding removal of ‘blasphemous’ content. What about demands from a foreign government ? Only yesterday, the Turkish prime minister Erdogan branded Twitter ‘a plague’ in a TV interview.
Rather than impose upon Internet companies the burden of law enforcement, we should provide them the latitude to set their own policies as well as the legal confidence to stand firm in the face of unreasonable demands. The usual market forces will promote those acting responsibly.
Further reading
- Tory-Labour pact could save data bill, says Lord Howard
- Internet companies warn May over ‘snooper’s charter’
- Snooper’s charter ‘should be replaced by strengthening of existing powers’
- Exclusive : ‘Snooper’s charter’ would not have prevented Woolwich attack, says MI5
- Search engines urged to block more online porn sites
- Why technology must be the solution to child abuse material online
- Google must take more action to police explicit content, says Vince Cable
- Facebook bows to campaign groups over ‘hate speech’
- Facebook sexism campaign attracts thousands online
- Türkischer Ministerpräsident : Twitter ist eine Plage
- Valls : « La traque sur Internet doit être une priorité pour nous »
- La Cnil, futur juge d’Internet
- “National security matter” : Third agency caught unilaterally blocking web sites
-
yt_dlp gives a strange message : "Seek to desired resync point failed. Seeking to earliest point available instead." and "File ended prematurely"
16 septembre 2023, par nikita goncharovI have a discord bot (discord.py) in python and it can play music. Lastly it had trouble in playing the music, giving some random warnings but it mostly worked. But now it gives me this message :


[matroska,webm @ 000001570fe92d40] Seek to desired resync point failed. Seeking to earliest point available instead.



[matroska,webm @ 000001570fe92d40] File ended prematurely



and also this one


Warning: program compiled against libxml 211 using older 209



As I saw this is a very common warning but I still have no Idea how to fix it.


I will leave the code of the bot down bellow :


Ytdlp setup (I have renamed the librarie to be youtube_dl)


youtube_dl.utils.bug_reports_message = lambda: ''


ytdl_format_options = {
 'format': 'bestaudio/best',
 'outtmpl': '%(extractor)s-%(id)s-%(title)s.%(ext)s',
 'restrictfilenames': True,
 'noplaylist': True,
 'nocheckcertificate': True,
 'ignoreerrors': False,
 'logtostderr': True,
 'quiet': True,
 'no_warnings': False,
 'default_search': 'auto',
 'source_address': '0.0.0.0', # bind to ipv4 since ipv6 addresses cause issues sometimes
}

ffmpeg_options = {
 'options': '-vn',
}

ytdl = youtube_dl.YoutubeDL(ytdl_format_options)


class YTDLSource(discord.PCMVolumeTransformer):
 def __init__(self, source, *, data, volume=0.5):
 super().__init__(source, volume)

 self.data = data

 self.title = data.get('title')
 self.url = data.get('url')
 self.duration = data.get('duration')
 img = ""
 imgs = ['']
 for image in data.get("thumbnails"):
 img = image["url"]
 imgs.append(image["url"])
 self.image = img
 self.thumbnails = imgs



The play command :


# if message.author.voice_client is not None:
try:
 print(1)
 sessionChannel = message.author.voice.channel
except:
 embedAns = discord.Embed(color=discord.Color.from_rgb(255, 201, 115))
 # embedImg.set_image(url=player.image)
 # embedImg.type = "image"
 embedAns.add_field(name="Player", value=f'To play audio you must join a voice channel!',
 inline=True)
 embedAns.add_field(name="", value=f'*{message.author.name}*', inline=False)
 # embedImg.image.width = "800"
 await message.channel.send(embed=embedAns)
try:
 print(2)
 await message.author.voice.channel.connect(reconnect=False)
 print(2)
except:
 pass
"""embedAns = discord.Embed(color=discord.Color.from_rgb(102, 196, 250))
# embedImg.set_image(url=player.image)
# embedImg.type = "image"
embedAns.add_field(name="Player", value=f'Succesfuly joined voice channel to play music in {sessionChannel}! Loading in youtube song... Please wait...', inline=True)
embedAns.add_field(name="", value=f'*{message.author.name}*', inline=False)
# embedImg.image.width = "800"
await message.channel.send(embed=embedAns)"""
try:
 print(3)
 load = await message.channel.send(
 f'Succesfuly joined voice channel to play music in {sessionChannel}')
 print(4)
 url = matched.group(1)
 player = await YTDLSource.from_url(url, loop=client.loop, stream=True)
 # Embed = await YTDLSource.from_url(url, loop=client.loop, stream=False)
 sessionChannel.guild.voice_client.play(player, after=lambda e: print(
 f'Player error: {e}') if e else None)
 await load.delete()
 sec = player.duration % 60
 temp = player.duration // 60
 min = temp % 60
 hour = temp // 60
 if hour == 0:
 timeStr = f"{min:02d}:{sec:02d}"
 else:
 timeStr = f"{hour}:{min:02d}:{sec:02d}"
 # await message.reply()
 embedImg = discord.Embed(color=discord.Color.from_rgb(102, 196, 250))
 # embedImg.set_image(url=player.image)
 # embedImg.type = "image"
 embedImg.set_thumbnail(url=player.image)
 embedImg.add_field(name="Player", value=f'Now playing: **{player.title}** \n `{timeStr}`',
 inline=True)
 embedImg.add_field(name="", value=f'Requested by: {message.author.name}', inline=False)
 # embedImg.image.width = "800"
 await message.channel.send(embed=embedImg)
except Exception as ex:
 embedAns = discord.Embed(color=discord.Color.from_rgb(255, 119, 115))
 # embedImg.set_image(url=player.image)
 # embedImg.type = "image"
 # embedImg.set_thumbnail(url=player.image)
 embedAns.add_field(name="Player Error",
 value=f'Couldent play audio on {sessionChannel} \n`{ex}`', inline=True)
 embedAns.add_field(name="", value=f'Requested by: {message.author.name}', inline=False)



-
Evolution #3720 (Nouveau) : Refaire un éditeur à base de CodeMirror + ajouts
27 février 2016, par RastaPopoulos ♥Cahier des charges :
- Dans l’éditeur lui-même, avoir une vue plus sémantique de ce que l’on tape (WYSIWY Mean !)
- Pouvoir mettre en plein écran
- Pouvoir prévisualiser le vrai rendu HTML final (avec les images, modèles, etc)
- Pouvoir éditer côte à côte avec la prévisu
- Être pérenne et que le noyau puisse reconnaitre plusieurs syntaxesDes gens ont fait ça pour Markdown mais malheureusement QUE pour Markdown. Mais en fait quasiment tout ce qui est important est géré en sous-main par CodeMirror !
https://simplemde.com/Leur éditeur est en fait relativement simple :
=> c’est CodeMirror à 80%
+ ils ajoutent une CSS qui ne change pas juste la couleur pour la syntaxe, mais aussi la taille, pour les titres, gras, italique, etc
+ ils ajoutent une barre de boutons
+ ils ajoutent un système de prévisu (seul ou côte à côte)CodeMirror est entre l’autre l’éditeur de code de Chrome et Firefox, et de milles autres choses. Il est à priori (très) pérenne, modulaire, et sait gérer plusieurs syntaxes en les déclarant dans un module JS (un "mode"). En plus de la reconnaissance de syntaxe, il gère déjà plein de plugins comme raccourcis claviers, continuer une liste quand on fait Entrée, etc.
Pour SPIP je propose cela :
- faire un mode CodeMirror qui gère uniquement les modèles SPIP, et peut-être les liens (ce qui permettrait de l’utiliser avec d’autres syntaxes que SPIP, notamment dans Markdown)
- faire un mode CodeMirror pour tous les trucs SPIP autre que modèles
- faire une CSS qui rend plus sémantique la saisie SPIP (agrandir les intertitres, etc)
- récupérer la CSS pour la saisie Markdown de SimpleMDE
- trouver une barre de boutons se basant déjà sur CodeMirror : les boutons ne feraient qu’appeler des comportements CodeMirror
- re-implémenter notre système de prévisu + de fullscreen et côte à côte dans cette nouvelle barre (= comme SimpleMDE !), sachant que nous la prévisu ça appelle un truc serveur, alors que SimpleMDE il semble que c’est tout en JS client.Je pense que le plus gros est de faire les deux modes de syntaxes SPIP pour CodeMirror. Mais une personne a fait un projet très cool qui apparemment fonctionne déjà : une déclaration de grammaire en JSON, beaucoup mieux que la programmation JS des modes de CodeMirror :
https://github.com/foo123/codemirror-grammar
Et ça marche !Pour le reste, on doit pouvoir s’inspirer de SimpleMDE mais en généralisant :
1) Ce serait bien d’avoir une barre de bouton pour SPIP et pour Markdown en même temps (en fait avoir deux déclarations, suivant le mode voulu)
2) Avoir notre prévisu-serveur.Comme on le remarque, je propose deux choses qui permettent de garder Markdown sous la main :
1) séparer la déclaration des modèles (et peut-être des liens)
2) avoir deux déclarations de boutonsCela permettra d’office, avec le même éditeur, la même base commune, de savoir gérer à la fois SPIP et Markdown. Cela me semble important à prendre en compte dès le début.